我有2个矩阵A
和B
。
我在A列中找到最大值,并将它们的索引保留在I中。到目前为止,一切都很好。现在,我需要选择具有与I中存储的索引相同的B数组。我不知道该怎么做。见下文:
A = [1,2,3; 0,8,9]
B = [0,1,2; 4,2,3]
[~,I] = max(A)
h = B(I)
我需要获取以下值B
:
h = [0 2 3]
但是代码产生了不同的结果。我该如何解决?
A =
1 2 3
0 8 9
B =
0 1 2
4 2 3
I =
1 2 2
h =
0 4 4
提前致谢
该max
函数的使用方式如下
如果A是矩阵,则
max(A)
行向量包含每一列的最大值。
所以M = max(A)
等于M = max(A,[],1)
。但是,如果不确定,请使用第三个输入。
如果用于在矩阵的列中max
查找最大值,则它将返回行索引。该列索引是你的话,简单1:size(A,2) = [1 2 3]
。
现在,您需要使用以下命令将行索引和列索引转换为线性索引sub2ind
:
%// data
A = [1,2,3; 0,8,9]
B = [0,1,2; 4,2,3]
%// find maxima of each column in A
[~, I] = max( A, [], 1 ) %// returns row indices
%// get linear indices for both, row indices and column indices
I = sub2ind( size(A), I, 1:size(A,2) )
%// index B
h = B(I)
返回:
h =
0 2 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句