在matlab中查找数组中遵循某个值的元素

finding elements in array which are following a certain value in matlab

假设我有一个数组:

[1 5 1 1 3 1 1 1 7]

我想找到“1”后面的每个元素的索引,所以我会得到 2、5、9。matlab 是否提供了这样做的任何东西? 谢谢你的帮助,纳丁

我建议以下一行:

a = [1 5 1 1 3 1 1 1 7];
idx = find(a(1:end-1) == 1 & a(2:end) ~= 1) + 1

returns:

idx =

     2     5     9

希望对您有所帮助

这是另一种方式。设 x 为输入向量。

result = find(diff(x==1)<0)+1;

示例:

>> x = [1 5 1 1 3 1 1 1 7];
>> result = find(diff(x==1)<0)+1
result =
     2     5     9