2016-05-30 5 views
0

マトリックス論理インデックスを作成しようとしましたが、Matlabは狂っているようですが、ここでは何が欠けていますか?マトリックス論理インデックスを使用したMatlabエラーA(I)= B

ルック:残りは安心

>> A 
A = 
    NaN NaN NaN NaN 
>> B 
B = 
    1  2  3  4 
>> I 
I = 
    1  1  0  0 
>> A(I) = B 
In an assignment A(I) = B, the number of elements in B and I must 
be the same. 
>> numel(B) 
ans = 
    4 
>> numel(A) 
ans = 
    4 
+0

「B」は4つの要素を持ち、2つの真の要素しか持たず、4つの要素を2に強制することはできません。「A(I)= B(I)これは論理的なインデックス付けと呼ばれ、 "フラグ操作"ではありません – Suever

+0

もう一方の2は変更しないでください。私は推測する。 – Pedro77

+0

あなたはちょうど私が投稿したものを試しましたか?それはまさにそのことです。 – Suever

答えて

2

は、MATLABはクレイジーではありません。 にはあなたが示したように4つの要素があり、には2つのtrueという値しかないので、A(I)には2しかありません。

numel(B) 
% 4 

numel(A(I)) 
% 2 

Aの2つの要素に4つの要素を割り当てようとしていますが、これはエラーの内容とまったく同じです。割当A(I)= Bで

、Bにおける要素の数とIはでなければならない同じにのみI場合に特定の値とABから2つの値を割り当てることができ

。私はこれのようなBの対応する要素だけを割り当てたいと思っています。

A(I) = B(I); 
関連する問題