2011-03-30 137 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) 

会给你剥离前导和尾随零的数组。