我正在尝试找到具有最大值的矩阵A
的条目。
我已经生成了矩阵A
,除了矩阵A中条目的最大值之外,我怎么能要求MATLAB返回四个索引
for i = 1:size(CB,2)
for j=1:size(CB,2)
for k=1:size(CB,2)
for l=1:size(CB,2)
A(i,j,k,l)= (abs( conj(transpose([CB(:,i); CB(:,j)]))*MATRIX* [CB(:,k); CB(:,l)])^2);
end
end
end
end
答案 0 :(得分:5)
a = rand(5, 5, 5, 5);
[maxa, maxidx] = max(a(:));
[I, J, K, L] = ind2sub(size(a), maxidx);
我们可以测试:
>> a(I, J, K, L) == maxa
ans =
1
这种方式的工作方式是我们从max
命令的第二个输出中收到linear index。我将colon operator与max
一起使用,因此我们的输入实际上是a
的一个长列向量,输出是整个矩阵maxa
的最大值,以及列值向量maxidx
中该值的位置。然后,您可以将ind2sub
与size
一起使用,将该线性索引转换为矩阵的下标。
答案 1 :(得分:4)
使用1-D索引:
method_info
method_info
是AnnotationDefault
中value()
所在的索引(即[M,I] = max(A(:));
)
然后,您需要使用以下内容将1D索引转换为4D索引:
I