2016-06-14 17 views
0

Iは最小値を表し、Iは、2つの異なる値を有する動的還元

0と1の間、それらのすべてであり、いくつかの異なる値、と呼ばれる最小値と最大値を含むベクターを有します最大値。この2つの値は時間とともに変化する可能性があります。

私は動的にベクトルの次元を減らします。この値は、minとmaxで記述されたギャップ内に含まれなければなりません。例えば

、 時刻T = 1で私はそのベクトルを有する:

ベクトルa、2つの値(最小および最大)、新しいベクトル所与
a=[0.5,0.2,0.6,0.3,0.2187,0.8798,0.5432,0.3563,0.3981,0.7845]; 
min=0.3; 
max=0.7; 

:a_new、

べきと:

a_new=[0.5,0.6,0.3,0.5432,0.3563,0.3981]; 

minmax値が元から始まる新しいベクトルが、あることを束縛ようにするかを決めることに起因し、この定義された。

答えて

3

コードソリューション

あなただけの古いものを指定して、新しいベクトルを生成したい場合は、次の構文を使用します。あなたはまた、削除された各の位置を計算したい場合は

a_new = a(a>=min & a<=max); 

nonDeleteIndices = find(a>=min & a<=max); 
deletedIndices= find(a<min | a>max); 

:と非削除された値は、MATLABの検索機能を使用します

結果

a_new = 

0.5000 0.6000 0.3000 0.5432 0.3563 0.3981 


nonDeletedIndices= 

1  3  4  7  8  9 


deletedIndices= 

2  5  6  10 

提案

Iは最小値と最大値以外の異なる変数名使用することをお勧め - などMINVALとMAXVALなどを。これらの名前を持つMATLAB関数はすでに存在しており、それらをオーバーライドする必要はありません。

+0

ありがとうございました。削除された要素についてのベクトル内の位置を知ることが可能かどうかはわかります。可能です? – Chask

+0

@Chaskはい、それは可能です、私はそれに応じて私の答えを変更しました。 – drorco

+0

ありがとう、ちょうど最後の質問、私が必要とする出力のインデックスは、例えば最初の質問に関して、削除された要素のインデックスです: インデックス= [2 5 6 10] – Chask

関連する問題