在MATLAB中从矩阵中选择一些成员

时间:2016-06-17 17:14:01

标签: matlab

让我们假设:

R = [1     2     3; ...
     4     5     6; ...
     7     8     9; ...
     ];

我如何选择*只有三名成员:R(1,1)R(1,3)R(3,3)

这意味着我在寻找

 B =
     1
     7 
     9 

请注意B = [R(1,1), R(1,3), R(3,3)]或"循环"解决方案不是答案,因为我需要为大数据做这件事。因此,最好使用索引解决方案。谢谢

  • 挑选会员的规则(条件)是: R(i,j)i = [ 1, 3, 3]的{​​{1}};

2 个答案:

答案 0 :(得分:2)

您只需使用ismember查找所有1,7或9的

即可
B = A(ismember(A, [1 7 9]));

否则,如果您想要特定的位置,并且您有行和列,只需使用sub2ind创建线性索引

rows = [1 3 3];
columns = [1 1 3];

B = A(sub2ind(size(A), rows, columns));

正如重复的回答指出你绝对可以做到以下但你牺牲了可读性。

B = A(size(A, 1) * (columns - 1) + rows);

答案 1 :(得分:0)

R = [1 2 3; 4 5 6; 7 8 9]; % Your matrix
B = R([1,3,9])             % indices