Минимумы в области 2d матрицы с ее индексами
У меня есть набор из 18 векторов MATLAB (необработанные показания текущих значений) данных, которые варьируются в зависимости от множества минималистов и максимумов, помещенных в 2d матрицу B
который имеет размер 18 на 16348.
Я нашел индексы и значение глобального максимума каждого вектора строки. Хранится в другом векторе, а именно M
(имеет максимальные значения каждого вектора строки B
) и l (имеет индексы max каждого вектора строки B
). используя приведенный ниже код.
[M,l]=max(B,[],2)
Теперь я хочу найти минимумы каждого вектора строки, которые встречаются до этого глобального максимума.
Я написал цикл, чтобы оглянуться назад, начиная с глобального максимума и проверяя наименьшее значение и его индексы. Условие для минимумов можно представить как b[i,l]
Это положить в цикл, как показано ниже.
o=l; % l vector has the indices of global max of all 18 vectors%
for i=1:18
while ( B(i,o(i)) > B(i,o(i)-1)) % to locate the minima before globalmax
o(i)=o(i)-1;
end;
if( B(i,o(i) < B(i, o(i)+1))
display(o(i));
display(B(i,o(i)));
break;
end;
end;
По какой-то причине while
цикл выполняется только один раз, а затем останавливается. Это проблема, с которой я сталкиваюсь.
На графике ниже показаны 4 из 18 значений, а максимумы и минимумы для вектора отмечены.