有向图对齐EdgeCData与正确的边缘
19日视图(30天)
显示旧的评论
我使用一个邻接矩阵,显示在一个有向图,我有一个相应的矩阵,包含额外的信息关于我的数据,我想使用的边缘颜色。问题是,EdgeCData财产预计一个矢量,在转换,数据不再是正确对齐。
一个= [1 1 0 0 0;0 0 0 0 1);0 1 0 0 1;1 0 0 0 0;0 0 1 1 0];%邻接矩阵
CData = [。85。1 0 0 0;0 0 0 0。2;0 5 0 0主板市场;3 0 0 0 0;0 0。45 1 0];%颜色数据
CDataVec = 0 (CData);%转换为矢量EdgeCData产权(位移数据)
colormap飞机
caxis ([0 1])
G =有向图(一个);
DG =情节(G);
DG。EdgeCData = CDataVec;
c = colorbar;
我的理解是,邻接矩阵映射到有向图的行ID指向列ID(例如数据行4列1邻接矩阵A的节点有向图中的4连接节点1)。边缘的颜色我想在这种情况下是0.3(因为这是价值4行,第一列在CData),而是它是1。我怎样才能得到所有的颜色数据与适当的边缘?
0评论
接受的答案
Asvin库马尔
2021年6月30日
编辑:Asvin库马尔
2021年6月30日
您需要传递到之前CData矩阵转置
非零
。
非零
生成一个列表遍历输入二维矩阵的非零元素列为主的形式。然而,边的有向图生成一个列表行邻接矩阵的形式。
试试这段代码:
一个= [1 1 0 0 0;0 0 0 0 1);0 1 0 0 1;1 0 0 0 0;0 0 1 1 0];%邻接矩阵
CData = [。85。1 0 0 0;0 0 0 0。2;0 5 0 0主板市场;3 0 0 0 0;0 0。45 1 0];%颜色数据
CDataVec = 0 (CData。');%转换为矢量EdgeCData产权
colormap飞机
caxis ([0 1])
G =有向图(一个);
DG =情节(G);
DG。EdgeCData = CDataVec;
c = colorbar;
%比较下面的两个数组的顺序:
CDataVec
G.Edges.EndNodes