使用Matlab选择矩阵中的元素

3
我的问题是这样的:我有一个矩阵,比如说
1   2   3 
4   2   6
6   1   8
4   5   4
7   1   5
8   2   0

我希望从矩阵中提取所选的数值,例如,类似于这样的向量。
B = [3 6 0]

当第二列的值为2时,选择第三列的值。我尝试了不同的方法,但都没有成功。

3个回答

2

使用这个 -

B = A(A(:,2)==2,3)' %// Assuming A is your input matrix

2
如果M是您的矩阵,您可以使用以下方法选择第二列:
M(:,2)

将其与数字“2”相比较,以获取包含数字“2”的行。
M(:,2)==2

使用这个逻辑向量从第三列中选择你的元素。
M(M(:,2)==2,3)

1
稍微通俗地说,如果您想根据一组值进行选择,请使用ismember生成逻辑索引:
>> A(ismember(A(:,2), [2 5]) , 3) %// [2 5]: values you want to find in 2nd col

ans =

     3
     4
     6
     0

1
也许你可以提到[1 5],其中1和5是第二列中寻找的值。更好的例子可能涉及到2,所以像[2 5]这样的东西可能更好,因为OP正在寻找2 - Divakar
@Divakar 谢谢!已更新。 - Luis Mendo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接