我有一个像这样的矩阵:
a= [ 61 65 63 ; ...
21 21 24 ; ...
34 2 51 ]
b= [ -1 0 8; ...
-2 0 6; ...
-4 0 2]
c=cat(3,a,b)
我想要做的是通过c上的第一个维度的行找到最高值,然后根据这些值来获取行和列的值,但是在c的第三个维度中。
在我的例子中,我正在尝试以下方法:
[maxV,colIndx] =max(c,[],2)
m=maxV(:,:,1)
f=c(:,colIndx(:,1,1),2)
向量m返回我答案的一半,即
m =
65
24
51
现在,我希望f像
f =
0
6
2
但是,我的代码并没有返回我想要的内容。非常感谢任何帮助!
答案 0 :(得分:4)
尝试通过sub2ind
函数使用线性索引:
linIndx = sub2ind(size(c), (1:(size(c,1)))', colIndx(:,:,1), ones(size(c,1),1)*2);
f = c(linIndx)