Я использовал логическую индексацию, прежде чем в векторах MATLAB для условий какНайти локальные максимумы с логической индексацией в MATLAB
X = X(X < 6);
Теперь, однако я хотел бы найти локальные экстремумы, используя ту же идею, но с «местными» условиях , Я бы быть заинтересованы в чем-то вроде
X = X(X(i) > X(i-1) & X(i) > X(i + 1));
Я знаю, что это не будет работать в первый и последний элементы вектора и что существуют более эффективные способы, чтобы найти локальные экстремумы.
Этот вопрос отличается от предыдущего (Getting FFT peaks from data) тем, что я не особо заинтересован в поиске максимумов, а скорее для того, чтобы использовать логическую индексацию с «локальными» условиями, относящимися к смежным элементам в векторе.
Покажите нам минимальные данные ввода образца и ожидаемый результат? – Divakar
Я не думаю, что это возможно только с логической индексацией без какого-либо цикла. – Navan
Для относительных простых ограничений или условий вы можете использовать 'ordfilt2' или' findpeaks'. См. [Этот вопрос SO] (http://stackoverflow.com/questions/15548441/find-local-maximum-value-in-the-vector). – Maurits