ここで私は配列を持ち、条件文に従っていくつかの要素を抽出します。Matlab配列のインデックスと補完インデックス
A = 10:-1:1;
idx = find(A>3);
残りの要素を取得する直接の方法は1,2,3ですが、返されるidxを使用していますか?
ここで私は配列を持ち、条件文に従っていくつかの要素を抽出します。Matlab配列のインデックスと補完インデックス
A = 10:-1:1;
idx = find(A>3);
残りの要素を取得する直接の方法は1,2,3ですが、返されるidxを使用していますか?
を他の答えに。アレイAを1度しか通過できません。私はそうするブールインデックスを好む:
idx1 = A>3;
idx2 = ~idx1;
あなたはリターンを見つけるの指標と同様のゲームを行うことができます:
idx1 = find(A>3)
idx2 = setdiff(1:length(A), idx1); % assuming A is a vector
これは、条件文に関するものであれば、「find」を使用することはできません。あなたが使用することができ :
X=A(A>3) %for the conditional Elements or
Y=A(~(A>3)) % for the other group
すでに得られているXを使ってYを見つけることはできますか? – Hamidreza
単に ">" "< =" に署名変更:
idx = find(A<=3);
あなたはまた、ブール逆使用することができます。これは、相補的な
idx = find(~(A>3));
'IDX =検索(<= 3);'? – rayryeng
本当に、私は要素のインデックスと残りの部分をすべて1行で取得する方法があると思っただけです。[idx、rest] = ... – Hamidreza
できません。これを行うには、追加のコード行を記述する必要があります。 'find'はブール条件を満たすインデックスのみを入力として探します。条件を満たしていないものを同時に見つけることはできません。 – rayryeng