矩阵乘法MATLAB

时间:2018-03-21 12:02:57

标签: matlab graph digraphs

所以也许我正在过度思考这个并把它弄得一团糟......

我在MATLAB中有一个有向图。我需要将其更改为无向图,以最小的生成树对其进行评估(对吗?它不会对有向图进行处理)。我有一个nx1的二进制矩阵(1是唯一的,0是重复的)表示重复,而我的node-node-edgeweight矩阵的形式为nx3。看起来我的指向边是相同的方向,所以将其改为无向不应该有所作为。

如何使用二进制的列向量将主矩阵中的所有三列重复归零,因此它只显示无向边?

另外,如果我还缺少另一种方法,我会很喜欢!

1 个答案:

答案 0 :(得分:2)

从你的例子:

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;

对于MATLAB> = r2007a

(来自Chris Luengo comment

out = bsxfun(@times,vect,mat)

对于MATLAB> = r2016b

(来自Chris Luengo comment

out = mat.*vect