2016-10-03 10 views
0

私は、このアレイは、すべての反復で充填取得した素子でループを有する配列の末尾から不要な要素を削除しますか?

roots = zeros(100, 1); 

100ゼロから始まる100x1配列を有します。一定の条件が満たされた場合

for iRoots = 1:100 
    roots(iRoots) = a; 

しかしループが早く終了し、私は、アレイ内の不必要なゼロの多くが残っています。たとえば、私はこのような根の配列で終わるかもしれない:私は最初の5つの非ゼロ要素を維持したい

charVals = [ 1 5 2 2 8 0 0 0 ... 0 ] 

。この配列からすべてのゼロを削除するにはどうすればよいですか?

+0

最初の5つの非ゼロ要素だけが必要な場合は、ループを '1:5'からのみ実行することはできませんし、' 0(ゼロ) 'で配列を初期化できませんか? – hbaderts

+0

これはほんの一例に過ぎず、5つより多い要素または少ない要素があることが分かりました。 – csss

答えて

1

ループがこれだけやる早期それでも、最新の実行インデックスの値を持つことになります終了:あなたがループを早く終了させる条件をチェックした場合

roots(iRoots:end) = []; 

以外にも、しばらくの間を使用して検討するかもしれませんforループの代わりにloopを使用します。

関連する問題