【发布时间】:2014-05-15 02:47:35
【问题描述】:
我的问题是:我有一个矩阵,例如
1 2 3
4 2 6
6 1 8
4 5 4
7 1 5
8 2 0
我希望从矩阵中提取选定的值,例如像这样的向量
B = [3 6 0]
当第二列的值为 2 时选择第三列的值。 我尝试了不同的方法,但没有一种方法有效。
【问题讨论】:
我的问题是:我有一个矩阵,例如
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)
将其与两个比较以获得包含 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
【讨论】:
2,所以类似 [2 5] 可能是因为 OP 正在寻找 2?