先頭と末尾にゼロがあるウェーブレット関数があります。ウェーブレットの前または後に発生するすべてのゼロを取り除きたいのですが。ただし、ウェーブレット自体のゼロは削除したくありません。簡単にするために、次の1x11ベクトルがあるとします。
0 0 0 -2 -1 0 -1 -2 0 0 0
先頭と末尾のゼロを削除すると、ベクトルは次のようになります。
-2 -1 0 -1 -2
私の実際のベクトルは大きく、パフォーマンスが私の最大の関心事です。私はMATLABの初心者です。このタスクを可能な限り効率的に実行するためのヒントを教えてください。
これを試して
_ y = x(find(x,1,'first'):find(x,1,'last'));
_
find(x,1,'option')
コマンドは、最初と最後のゼロ以外のインデックスを提供します。
i1 = find(X, 1, 'first')
X
の最初の非ゼロ要素のインデックスを提供します
i2 = find(X, 1, 'last')
最後のインデックスを提供します。その後
X(i1:i2)
先頭と末尾のゼロを取り除いた配列が得られます。