2017-04-04 16 views
0

2つの行列を減算する必要があります。下のコードを見てみましょう。'@minus'を実行するとbsxfunエラーが発生する

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

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

私は2つの入力配列の

非シングルトン寸法はすべてのアイデア、なぜこのエラー

互いに一致しなければならないということ?というエラーを取得しますか ありがとう!

答えて

4

bsxfunを2つの列ベクトルに適用しようとしていますが、1行1列のベクトルに適用する必要があります。

bsxfun入力が異なる singelton寸法(size(arr,dim) == 1)を有するべきです。あなたの例では適切な入力であるsize(A) = [5472,1]size(B) = [1,3]Aのシネルートディメンションは2でBのシネルンディメンションは1ですが)B(:) - BのシネルートディメンションはAのように2になります。エラー。

は行います

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

C= bsxfun(@minus, A, B) 
+0

は、私は、このようなミスをすると信じてすることはできません!ありがとうございました! –

関連する問題