Используйте команду find
в MATLAB, которая возвращает индекс (i
), для которого вектор равен TRUE
. Итак:
% precache indices i where previous(i-1) == 1
idx = find(previous==-1)+1;
start(previous(idx)) = start(previous(idx))+1;
Причина, по которой я кеширую idx
, заключается в том, что previous
- большой вектор, а выполнение find
занимает некоторое время. В противном случае вы могли бы просто сделать
start( find(previous==-1)+1 ) = start( find(previous==-1) ) + 1;