2016-04-30 4 views
0

に私のコードをbsxfunを使用しているインデックスは、行列の次元を超えている:ランニングでエラー:MATLAB

A =[1 5 8; 3 4 7;9 10 11] 
B = bsxfun(@rdivide,A,sum(A)); 

、私はエラーを取得する:index exceeds matrix dimension

助けてください。

+1

問題を再現できません。コードはエラーなく実行されます。 – mikkola

+0

また、再生できません。このコードは、(少なくとも私にとっては)予想どおりに動作します。 – rayryeng

+1

変数 'sum'を作業領域からクリアします。 –

答えて

0

ワークスペースにsumという変数が定義されている可能性があります。 clearそれをリネームしても問題ありません。

A =[1 5 8; 3 4 7;9 10 11]; 
B = bsxfun(@rdivide,A,sum(A)) 
B = 

    0.076923 0.263158 0.307692 
    0.230769 0.210526 0.269231 
    0.692308 0.526316 0.423077 


sum = 5; %% Oops! 

B = bsxfun(@rdivide,A,sum(A)) 
Error: Index exceeds matrix dimensions 
+0

だから、関数の呼び出しと配列に '()'を使うのはちょっとばかげているのですが... oh matlab –