MATLAB - 从向量中删除前导和尾随零

时间:2011-03-30 15:31:17

标签: matlab vector strip

我有一个带有前导零和尾随零的小波函数。我想剥去小波之前或之后出现的所有零。但是,我不想删除小波本身内的任何零。为了简化,假设我有以下1x11向量:

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

删除前导零和尾随零后,矢量应为:

-2 -1 0 -1 -2

我的实际向量很大,性能是我主要考虑的问题。我是一名MATLAB新手,非常感谢有关如何尽可能高效地完成此任务的任何提示。

2 个答案:

答案 0 :(得分:27)

试试这个

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

find(x,1,'option')命令为您提供第一个和最后一个非零索引。

答案 1 :(得分:10)

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

将为您提供X

的第一个非零元素的索引
i2 = find(X, 1, 'last') 

会给你最后一个的索引。然后

X(i1:i2)

将为您提供剥离前导零和尾随零的数组。