执行“@minus”时出现 bsxfun 错误
bsxfun error when perform '@minus'
我有两个矩阵要相减。让我们看看下面的代码。
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B(:))
我得到的错误是
Non-singleton dimensions of the two input arrays must match each other
知道为什么会出现这个错误吗?
谢谢!
您正在尝试将 bsxfun
应用于两个列向量,而您应该将其应用于一行和一列向量。
bsxfun
输入应具有 不同的 单一维度 (size(arr,dim) == 1
)。在你的例子中 size(A) = [5472,1]
和 size(B) = [1,3]
是合适的输入(A
的单维是 2 而 B
的单维是 1),但是当你做 B(:)
- B
的单维度变为 2,就像 A
的一样,这会引发错误。
做:
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(:))
我得到的错误是
Non-singleton dimensions of the two input arrays must match each other
知道为什么会出现这个错误吗? 谢谢!
您正在尝试将 bsxfun
应用于两个列向量,而您应该将其应用于一行和一列向量。
bsxfun
输入应具有 不同的 单一维度 (size(arr,dim) == 1
)。在你的例子中 size(A) = [5472,1]
和 size(B) = [1,3]
是合适的输入(A
的单维是 2 而 B
的单维是 1),但是当你做 B(:)
- B
的单维度变为 2,就像 A
的一样,这会引发错误。
做:
A=rand(5472,1);
B=rand(1,3);
C= bsxfun(@minus, A, B)