所以也许我想多了,把它弄得一团糟......
我在 MATLAB 中有一个有向图。我需要将其更改为无向图以使用最小生成树对其进行评估(对吗?它不适用于有向图)。我有一个表示重复的 nx1 二进制矩阵(1 是唯一的,0 是重复的),我的 node-node-edgeweight 矩阵的形式是 nx3. 似乎我的有向边在两个方向上都是相同的,因此将其更改为无向边应该不会有什么不同。
如何使用二进制的列向量将主矩阵中的所有三列重复归零,这样它只会显示无向边?
另外,如果我缺少另一种方法,我会喜欢的!
从你的例子:
vect = [1;0;1]; % n x 1
mat = [3 3 2; 5 4 1; 8 2 2]; % n x p
第一个想法
out = repmat(vect,1,size(mat,2)).*mat;
第二个想法
out = mat;
out(find(~vect),:) = 0;
(来自Chris Luengo 评论)
out = bsxfun(@times,vect,mat)
(来自Chris Luengo 评论)
out = mat.*vect