找到最小乘积值并从矩阵返回乘积值

Jor*_*vid 0 matlab combinations minimum

比如我有这个矩阵:

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
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

C = [5 8 9 8; 30 42 56 72; 90 90 2 84]
Run Code Online (Sandbox Code Playgroud)

在我的实际矩阵中,A和B的大小各不相同.

我的问题是如何从矩阵C中找到最小值,所以输出就像这样(从上面的结果):

C = 2
A = 2
B = 1
Run Code Online (Sandbox Code Playgroud)

基本上,我需要有关代码的帮助,因此matlab将找到最小值,然后返回产生该最小值的矩阵A和B的值.

谢谢!!

Moh*_*nia 5

第二个输出参数min返回索引.

[C, I] = min(C(:));
A = A(I);
B = B(I);
Run Code Online (Sandbox Code Playgroud)

请注意,如果有多个元素等于最小值,C(:)则将返回第一个元素.

  • 我相信'我'将返回单个值,即使他们说它是一个向量.从matlab文档"如果有几个相同的最小值,则返回找到的第一个索引". (2认同)