Arrays 在数组中查找索引

Arrays 在数组中查找索引,arrays,matlab,sorting,for-loop,Arrays,Matlab,Sorting,For Loop,A=[0110111100] 您好,我想找到开始和结束1的索引,并将其放入子数组中。我正在解析一个文件,因此我必须以编程方式进行此操作。我正在用Matlab编程 A = [011100111100] ^ ^ B = [1 1 1] 2 4 B_index = [2 4] A = [011100111100] ^ ^ C = [1 1 1 1] 7 10C_index = [7 10] 我的尝试 i=1时的:长度(A) %

A=[0110111100]

您好,我想找到开始和结束1的索引,并将其放入子数组中。我正在解析一个文件,因此我必须以编程方式进行此操作。我正在用Matlab编程

A = [011100111100]
      ^ ^ B = [1 1 1]
      2 4 B_index = [2 4] 
A = [011100111100]
           ^  ^ C = [1 1 1 1]
           7  10C_index = [7 10]
我的尝试

i=1时的
:长度(A)
%添加以阻止循环超过i。
如果i==A(结束)
中断;%停止循环
结束;
如果A(i)==1&&A(i+1)==0
开始指数=i;
结束;
结束;

这可以找到开始索引,但我也想找到结束。

可能的重复是双数组还是标量?这是什么标记的C?@Luis Mendo哇,这很像我的情况,我仔细看了一下。@Arsalan实际上这里更简单。我认为应该有一个单独的答案。我已经删除了重复的votei,我会尝试一下并告诉你。@Arsalan它告诉你
ind
等于
1
的位置,也就是说,从值
0
1
发生了变化。对应于每次运行
1
值的开始。
A = [ 0 1 1 1 0 0 1 1 1 1 0 0 ]; %// example data
ind = diff([0 A 0]); %// detect changes
start_index = find(ind==1); %// a start is a positive change
end_index = find(ind==-1)-1; %// an end is (just before) a negative change