2011-03-30 138 views
20

我有一個具有前導和尾隨零的小波函數。我想去掉在小波之前或之後出現的所有零。但是,我不想刪除小波本身中的任何零。爲了簡化,假設我有以下的1x11向量:MATLAB - 從向量中刪除前導零和尾隨零

0 0 0 -2 -1 0 -1 -2 0 0 0 

除去開頭和結尾零後的載體應該是:

-2 -1 0 -1 -2 

我實矢量大,性能是我的首要問題。我是一名MATLAB新手,希望能夠儘可能高效地完成這項任務。

回答

24

試試這個

y = x(find(x,1,'first'):find(x,1,'last')); 

find(x,1,'option')命令爲您提供了第一個和最後非零指數。

+3

如果我想用矩陣做什麼呢? – Moh 2012-07-04 07:14:11

10
i1 = find(X, 1, 'first') 

會給你的X

i2 = find(X, 1, 'last') 

第一非零元素的索引會給你最後一個索引。然後

X(i1:i2) 

會給你剝離前導和尾隨零的數組。