2013-08-15 2 views
0

Например у меня есть эти матрицы:найти минимальное значение продукта и вернуть умноженные значения из матрицы

A = [ 1 2 3 4; 5 6 7 8; 9 10 2 12]; 

B = [5 4 3 2; 6 7 8 9; 10 9 1 7]; 

C = B.*A 

результат таков:

C = [5 8 9 8; 30 42 56 72; 90 90 2 84] 

В моей реальной матрице размера А и B меняется.

Мой вопрос, как я найти минимальное значение из матрицы С, так что выход будет просто так (из приведенного выше результата):

C = 2 
A = 2 
B = 1 

Так в основном, мне нужна помощь с кодом так MATLAB найдет минимум, а затем вернет значение из матриц A и B, которые производят это минимальное значение.

спасибо !!

ответ

5

Второй выходной аргумент min возвращает индекс.

[C, I] = min(C(:)); 
A = A(I); 
B = B(I); 

Обратите внимание, что при наличии более одного элемента, которые равны минимуму первый в C(:) будут возвращены.

+2

Я верю, что «я» верну какое-то значение, даже если они говорят, что это вектор. Из документации Matlab «Если имеется несколько одинаковых минимальных значений, возвращается индекс первого найденного». – discipulus

+1

@lovedynasty Вы правы. Обновлен ответ. –

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