0

tP整数要素と非整数要素が混在する配列を作成しました。整数要素の新しい配列を作成したい。

私が望む結果は、返されるのと同じ形式です。たとえば、次のようになります。

tP2=find(tP>300);

つまり、整数自体のリストではなく、整数値を含む要素番号のリストです。

これから、次のように目的の要素を選択します。

tP3=tP(tP2);

整数に対してこれを行うには、現在私が持っているものは次のとおりです。

tP2=find(isinteger(int16(tP)));

しかし、要素番号のリストの代わりに、tP2=1返されるだけです。

この場合、なぜ機能しisintegerないのですか?どうすれば必要な結果を得ることができますか? ありがとう。

4

2 に答える 2

1

使用するround

tp2 = find( tP == round(tP) );
于 2014-03-02T20:41:06.733 に答える
0

Shai が言うように、との比較roundは整数を検出する効果的な方法です。

次に、他の何かに一致するリストが必要でない限り、必要ありませんfind。比較だけでマスク配列が作成され、マスクを添え字に使用できます。

tP3 = tP(tP == round(tP));

を取り除き、tP2を呼び出すことfindで、時間とメモリを節約できます。

于 2014-03-02T21:03:30.160 に答える