在matlab

时间:2016-07-19 08:34:47

标签: arrays matlab indexing elements

假设我有一个数组:

[1 5 1 1 3 1 1 1 7]

我希望找到' 1'之后的每个元素的索引,所以我会得到2,5,9。matlab是否提供了任何操作? 谢谢你的帮助,Nadine

2 个答案:

答案 0 :(得分:6)

我建议以下单行:

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

返回:

idx =

     2     5     9

希望有所帮助

答案 1 :(得分:3)

这是另一种方式。设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