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

22

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

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

去除首尾零后,向量应为:

-2 -1 0 -1 -2

我的实际向量很大,性能是我最关心的问题。我是MATLAB的初学者,希望能获得有关如何以尽可能高效的方式完成此任务的任何提示。

2个回答

28

试试这个

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

find(x,1,'option') 命令会给出第一个和最后一个非零索引。


4
如果我想要用矩阵来做这件事,该怎么办? - Moh

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

这将给出X第一个非零元素的索引。

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

这将给你最后一个的索引。然后

X(i1:i2)

可以返回去掉开头和结尾零的数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接