使用matlab选择矩阵中的元素



我的问题是:我有一个矩阵,作为例子

1   2   3 
4   2   6
6   1   8
4   5   4
7   1   5
8   2   0

我希望从矩阵中提取选定的值,例如,像这样的向量

B = [3 6 0]

在第二列的值为2时选择第三列的值。我尝试了不同的方法,但没有一种有效。

使用

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

如果M是您的矩阵,您可以使用

选择第二列
M(:,2)

与two比较得到包含2

的行
M(:,2)==2

并使用这个逻辑向量从第三列中选择元素。

M(M(:,2)==2,3)

更一般一点:如果您希望基于一组值进行选择,则使用ismember来生成逻辑索引:

>> A(ismember(A(:,2), [2 5]) , 3) %// [2 5]: values you want to find in 2nd col
ans =
     3
     4
     6
     0

最新更新