从一个向量的非零值中获得相对中间索引



我有一个向量,它从0开始,然后是一些正值,然后又是0。我想要得到位于非零值中间的单元格的索引。例如,如果A=[0;0;0;2;2;3;5;7;0;0],则中间单元格的索引将为3,其值为3。

假设A中只有一组非零值,那么这里可以使用两种方法:

方法1 -

relative_middle_index = round(numel(nonzeros(A))/2)

方法2 -

relative_middle_index = round(diff(find(diff(A~=0)))/2)

可以使用两种方法获得绝对中间索引。

方法1 -

absolute_middle_index = round((find(A~=0,1) + find(A~=0,1,'last'))/2)

方法2 -

absolute_middle_index =  round(mean(find(diff(A~=0)))) 

最新更新