2017-04-04 111 views
0

我有兩個矩陣要被減去。我們來看下面的代碼。執行'@minus'時出現bsxfun錯誤

A=rand(5472,1); 
B=rand(1,3); 

C= bsxfun(@minus, A, B(:)) 

我得到的錯誤,說兩個輸入數組的

非單維度必須相互

任何想法,爲什麼匹配這個錯誤? 謝謝!

回答

4

您試圖對兩列向量應用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) 
+0

無法相信我做出這樣的錯誤!謝謝! –