【发布时间】:2017-08-29 08:57:56
【问题描述】:
我有两个矩阵要减去。让我们看看下面的代码。
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B(:))
我收到错误提示
两个输入数组的非单一维度必须相互匹配
知道为什么会出现这个错误吗? 谢谢!
【问题讨论】:
我有两个矩阵要减去。让我们看看下面的代码。
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B(:))
我收到错误提示
两个输入数组的非单一维度必须相互匹配
知道为什么会出现这个错误吗? 谢谢!
【问题讨论】:
您正在尝试将bsxfun 应用于两个列向量,而您应该将其应用于一行和一个列向量。
bsxfun 输入应具有不同 单维数 (size(arr,dim) == 1)。在您的示例中,size(A) = [5472,1] 和 size(B) = [1,3] 是适当的输入(A 的单维度为 2,B 的单维度为 1),但是当您执行 B(:) - B 的单维度时维度变为 2,就像A's,会引发错误。
做:
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B)
【讨论】: