【发布时间】:2015-10-29 04:31:40
【问题描述】:
如果我有一个矩阵,说:
A = [ 0 2 4 0
2 0 5 0
4 5 0 3
0 0 3 0 ]
我想在矩阵中找到我可以输入的最大值:
max(max(A))
或
max(A(:))
如果我只想找到第 1 行和第 2 行以及第 3 和第 4 列的最大值,我可以这样做:
a = [1 2]
b = [3 4]
max(max(A(a,b))
但是如果我想找到对应于该值的行和列的索引呢?
根据 matlab 文档,如果我使用整个矩阵,我可以使用 ind2sub 函数:
[val,idx] = max(A(:))
[row,col] = ind2sub(size(A),idx)
但是我如何才能让我的示例工作,我使用向量 a 和 b 来确定它找到值的行和列?
到目前为止,这是我能够解决的唯一方法:
max_val = 0;
max_idx = [1 1];
for ii = a
[val,idx] = max(A(ii,b))
if val > max_val
max_val = val
max_idx = [ii idx]
但这对我来说似乎相当笨拙......有什么想法吗?
【问题讨论】: