首页 > 解决方案 > 给定每一行的列索引,如何从矩阵的每一行中选择一个元素?

问题描述

例如,如果一个矩阵是

A = [11 22 33 11; ...
     44 55 66 34; ...
     67 45 33 22]

然后从我想选择的每一行

col_idx = [2 4 1]    

所以结果是

ans = 22
      34
      67

与此类似的其他问题基于 R 或 Python。但是,我正在寻找基于 MATLAB 的答案。任何帮助,将不胜感激。

标签: matlabmatrix

解决方案


我会用sub2ind它:

A = [11 22 33 11; 44 55 66 34; 67 45 33 22];

col_idx = [2 4 1]
row_idx = 1:size(A, 1)

A(sub2ind(size(A), row_idx, col_idx))

输出:

col_idx =
   2   4   1

row_idx =
   1   2   3

ans =
   22   34   67

希望有帮助!


推荐阅读