矩阵乘法 MATLAB

Matrix multiplication MATLAB

所以也许我想多了,把它搞得一团糟....

我在 MATLAB 中有一个有向图。我需要将它更改为无向图以使用最小生成树对其进行评估(对吗?它不适用于有向图)。我有一个 nx1 二进制矩阵(1 是唯一的,0 是重复的)表示重复,我的节点-节点-边权重矩阵的形式为 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;

对于 MATLAB >= r2007a

(来自

out = bsxfun(@times,vect,mat)

对于 MATLAB >= r2016b

(来自

out = mat.*vect