【问题标题】:Matlab : how to get M(1,2) from vector v=[1,2]? [duplicate]Matlab:如何从向量 v=[1,2] 中得到 M(1,2)? [复制]
【发布时间】:2013-06-05 13:33:14
【问题描述】:

说我有:

M = [1, 2; 3, 4]
v = [1, 2];

M(v) 给出[1 3] 但我想得到的是M(1, 2) = 3。

有办法吗?当然,我可以做M(v(1), v(2)),但我需要这个东西来处理 M 一个 N 维数组和 v 一个长度为 N 的向量。

非常感谢

【问题讨论】:

  • M(1,2) 寻址M 第一行的第二列,即2。为什么您希望该表达式返回 3 ?我不确定我是否理解您的问题。
  • 注意 M(1,2) 在这种情况下是 2,3 是 M(2,1)
  • 对不起,它是 M(1,2)=2。我在 Eitan 提出的主题中找到了我的问题的答案:V=num2cell(v) 然后是 M(V{:})。非常感谢

标签: matlab multidimensional-array matrix-indexing


【解决方案1】:

如果您的目标是从 M 中获取值,我会使用 M(sub2ind(大小(M),v(:,1),v(:,2))) 这将很好地适用于 v 的矢量版本。

【讨论】:

    【解决方案2】:

    你可以使用 Matlab 如何扩展 cell

    M = [1, 2; 3, 4]
    v = {1, 2}
    M( v{:} )
    

    (你可以用v_cell=num2cell(v)转换v)

    【讨论】:

      猜你喜欢
      • 2013-07-25
      • 2016-05-19
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 2014-02-14
      • 1970-01-01
      • 2016-01-03
      相关资源
      最近更新 更多