0
我有两个矩阵要被减去。我们来看下面的代码。执行'@minus'时出现bsxfun错误
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B(:))
我得到的错误,说两个输入数组的
非单维度必须相互
任何想法,为什么匹配这个错误? 谢谢!
我有两个矩阵要被减去。我们来看下面的代码。执行'@minus'时出现bsxfun错误
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B(:))
我得到的错误,说两个输入数组的
非单维度必须相互
任何想法,为什么匹配这个错误? 谢谢!
您试图对两列向量应用bsxfun
,而您应将其应用于一行和一列向量。
bsxfun
输入应具有不同 singelton尺寸(size(arr,dim) == 1
)。在你的例子size(A) = [5472,1]
和size(B) = [1,3]
这是适当的输入(A
的singelton维度是2和B
的singelton维度是1),但是当你做B(:)
- B
的singelton维度变成2,如A
's,它抛出一个错误。
做:
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B)
无法相信我做出这样的错误!谢谢! –