我在matlab中有一个向量
a = [1 8 0 7 0 5 9 0 0 0 0 0 0 0 0]
这里我感兴趣的是找到第一个索引(超过该值的值完全为零),其中零连续出现。在此示例中,我希望答案为8
。
答案 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
但是,如果你的最后一个条目不是零,你要小心......