Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
矩阵乘法MATLAB_Matlab_Graph_Digraphs - Fatal编程技术网

矩阵乘法MATLAB

矩阵乘法MATLAB,matlab,graph,digraphs,Matlab,Graph,Digraphs,所以也许我想得太多了,把事情搞得一团糟 我在MATLAB中有一个有向图。我需要将其更改为无向图,以使用最小生成树对其求值(对吗?它在有向图上不起作用)。我有一个表示重复的二进制文件的nx1矩阵(1是唯一的,0是重复的),我的节点EdgeWight矩阵的形式是nx3。看起来我的定向边在两个方向上都是相同的,所以将其更改为无向应该不会有什么区别 如何使用二进制文件的列向量将主矩阵中的所有三列重复项归零,使其只显示无向边 另外,如果我还缺少另一种方法,我会喜欢的 根据您的示例: vect = [1;0

所以也许我想得太多了,把事情搞得一团糟

我在MATLAB中有一个有向图。我需要将其更改为无向图,以使用最小生成树对其求值(对吗?它在有向图上不起作用)。我有一个表示重复的二进制文件的nx1矩阵(1是唯一的,0是重复的),我的节点EdgeWight矩阵的形式是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 (来自)

对于MATLAB>=r2016b (来自)

从你的例子来看:

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 (来自)

对于MATLAB>=r2016b (来自)


你能提供一个你想要得到的最简单的例子吗?对不起,我在上班的时候打电话。但是这里有一个想法:[1;0;1]×[3 3 2;5 4 1;8 2 2]会给我[3 2;0 0;8 2 2],所以你只是在寻找
x.*y
还是
x.*y
?(其中。
*
表示元素的乘法)您能提供一个简单的示例来说明您试图获得的结果吗?对不起,我正在用手机工作。但是这里有一个想法:[1;0;1]×[3 3 2;5 4 1;8 2 2]会给我[3 2;0 0;8 2 2],所以你只是在寻找
x.*y
还是
x.*y
?(其中,
*
表示元素的乘法)而不是
repmat
,更喜欢
bsxfun
bsxfun(@times,vect,mat)
。在较新版本的MATLAB中,以及在倍频程中,您只需执行
vect.*mat
,就可以隐式扩展单态维度。我不知道这一点。阅读,这对于版本>=2016b是正确的。我总是忘记哪些版本引入了新功能,所以我只说“更新的版本”,并试图摆脱它pin代替
repmat
,首选
bsxfun
bsxfun(@times,vect,mat)
。在较新版本的MATLAB中,以及在倍频程中,您只需执行
vect.*mat
,就可以隐式扩展单态维度。我不知道这一点。阅读,这对于版本>=2016b是正确的。我总是忘记哪些版本引入了新功能,所以我只说“更新的版本”,并试图摆脱它P