【问题标题】:how to get values of a matrix in MATLAB where the indices are given in a nx2 array如何在MATLAB中获取矩阵的值,其中索引在nx2数组中给出
【发布时间】:2012-10-17 10:21:48
【问题描述】:

我有一个大小为 nRows x nCols 的矩阵 A

我有一个nx2 矩阵B,其中包含矩阵A 的索引。 我想在B 中给出的索引处获取A 的值。

让我们说,

B = [1, 2;
     2, 3;
     3, 4]

A(1,2) = 1
A(2,3) = 2
A(3,4) = 1

我想知道任何给出以下内容的 Matlab 命令,给定 AB(我不想使用循环):

[1 2 1] 

【问题讨论】:

  • 好的,我知道了。我需要使用 sub2ind。 A(sub2ind(size(A), B(:,1), B(:,2)))
  • 通用解法(对于任意维矩阵)是here

标签: matlab matrix


【解决方案1】:

这就是你想要的:

A = [1,2; 3, 4; 5, 6; 7,8; 9,0]; % this is your N by 2 matrix
B = [1,1; 1,2; 2,1; 3, 1; 4,2]; % these are your indexes
A(sub2ind(size(A), B(:,1), B(:,2)))

A =

 1     2
 3     4
 5     6
 7     8
 9     0



B =

 1     1
 1     2
 2     1
 3     1
 4     2

ans =

 1
 2
 3
 5
 8

【讨论】:

  • 什么意思?我编辑答案以向您展示它的普遍性。
【解决方案2】:

我猜这就是你要找的东西:

A(sub2ind(size(A),B(:,1),B(:,2)))

【讨论】:

  • ...是的,谢谢。我无法给出答案,所以我把它作为评论。
猜你喜欢
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 2019-08-01
  • 2014-02-21
  • 1970-01-01
相关资源
最近更新 更多