【问题标题】:Matlab multiple indexingMatlab多重索引
【发布时间】:2016-03-22 15:10:52
【问题描述】:

我有一个这样的矩阵:

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

但是,我的代码没有返回我想要的。非常感谢任何帮助!

【问题讨论】:

  • 已阅读find 并尝试实现它。如果它不起作用,请根据您的尝试编辑您的问题。
  • 我阅读了 find 的说明,但我认为这对我的问题没有帮助,因为我已经知道索引,我只想从矩阵中获取特定元素。无论如何感谢您的回答。

标签: matlab indexing


【解决方案1】:

尝试通过sub2ind 函数使用线性索引:

linIndx = sub2ind(size(c), (1:(size(c,1)))', colIndx(:,:,1), ones(size(c,1),1)*2);
f = c(linIndx)

【讨论】:

    猜你喜欢
    • 2013-06-30
    • 1970-01-01
    • 2014-01-03
    • 2015-11-08
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    相关资源
    最近更新 更多