2

これまでのところ、このエラーの意味を理解するためのアイデアはありません。もし私が持っていれば、私の matlab プログラミングでこの問題を解決できると思います。

何が起こっているのかを説明し、例を挙げてくれる人がいたら?

4

1 に答える 1

8

I論理行列の場合

I = 
    1 0 1 1 0

Aは同じサイズの配列であり、

A = 
    5 3 8 1 2

それから

>> A(I) 
ans = 
    5 8 1

つまり、Iの要素のマスクとして機能しAます。これを割り当てに使用することもできます。

>> A(I) = 4
A = 
    4 3 4 4 2

(スカラー代入)、または

>> A(I) = [1 NaN 3]
A = 
    1 3 NaN 3 2

(配列割り当て)。次のようなことをしようとすると、エラーが発生します

>> A(I) = [ 7 6 5 4 8 7 6 8 7 9 4 3 2]

つまり、 containsA(I)とは異なる数の要素を参照し[7 6 5 4 8 7 6 8 7 9 4 3 2]ます。これは、スカラー値または空の値を代入する場合にのみ有効です

A(I) = []      %# valid 
A(I) = 4       %# valid
A(I) = [1 2 3] %# valid, numel(A(I)) == numel([1 2 3])
A(I) = [1 2]   %# NOT VALID, numel(A(I)) != numel([1 2])
于 2012-10-08T07:51:39.370 に答える