2013-10-26 2 views
1

У меня есть матрица A из 1000 строк и 2 столбца.Соответствующие элементы столбца, использующие самые близкие значения в MATLAB

A = [0.0325 5.6 ; 0.0367 7.6 ; 0.0391 8.1 ; 0.0404 9.7; etc.] 

Я хочу найти соответствующий элемент во втором столбце для заданного значения, которое необязательно находится в первом столбце.

Например, для заданного значения 0.0371 я хотел бы получить значение 7.6, поскольку оно соответствует значению второго столбца элемента, ближайшего к моему входу 0.0371 (0.0367).

Для 0.0393, я хочу 8,1 и т.д.

ответ

1

Вы можете вычислить разницу между каждым из элементов и нужного значения, а затем найти индекс минимума. Значение, которое вы хотите, будет находиться в индексе в столбце 2.

[~,idx] = min(abs(A(:,1)-testval)); 
desiredval = A(idx,2); 
+2

Удовлетворительный факт: если вы используете 'val' в качестве фиктивной переменной, вы можете заменить ее' ~ '. Например: '[~, idx] = min (abs (A (:, 1) -testval));' – nispio

+0

Я думаю, что это относится только к версиям выше ... R2012a, я хочу сказать, но это могло быть до что. Тем не менее, хорошая точка, ответ отредактирован! – darthbith

Смежные вопросы