我有一个向量,它从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))))