找到第一个索引,使所有连续元素都为零

时间:2014-09-03 13:18:42

标签: matlab

我在matlab中有一个向量

a = [1 8 0 7 0 5 9 0 0 0 0 0 0 0 0]

这里我感兴趣的是找到第一个索引(超过该值的值完全为零),其中零连续出现。在此示例中,我希望答案为8

3 个答案:

答案 0 :(得分:4)

即使您的上一个条目非零或第一个条目为零或所有条目都为零,一种方法仍然有效,几乎涵盖了所有条目。

find(diff([1 a]==0)==1,1,'last')

请注意,这会找到最后一组零的位置。

答案 1 :(得分:4)

find这对你来说非常有用:

find(a, 1, 'last') + 1

因为find只返回非零字符位置的列表,所以你只需要find只给你最后一个这样的元素,然后是下一个元素(因此+1

答案 2 :(得分:3)

last_idx = max(find(a~=0)) + 1

但是,如果你的最后一个条目不是零,你要小心......