从 Matlab 中的索引列表中获取矩阵的值列表
Get list of values of matrix from indices list in Matlab
我有一个这样的矩阵:
A = [35, 1, 6, 26;
3, 32, 7, 21;
31 9, 2, 22;
8, 28, 3, 17];
和这样的索引列表:
B = [1, 1;
1, 2;
2, 2;
1, 3];
我想从矩阵 A 中获取值列表,索引在 B 中
C = [35, 1, 32, 6]
我使用这个代码:
C = A(B==1)
但是 C 是:
[35, 3, 8, 1]
我哪里错了?
您可以使用 sub2ind
将 row,col
索引转换为线性索引。
A = [35, 1, 6, 26;
3, 32, 7, 21;
31 9, 2, 22;
8, 28, 3, 17];
B = [1, 1;
1, 2;
2, 2;
1, 3];
linear_ind = sub2ind(size(A), B(:,1), B(:,2));
C = A(linear_ind)
这将导致
C =
35
1
32
6
我有一个这样的矩阵:
A = [35, 1, 6, 26;
3, 32, 7, 21;
31 9, 2, 22;
8, 28, 3, 17];
和这样的索引列表:
B = [1, 1;
1, 2;
2, 2;
1, 3];
我想从矩阵 A 中获取值列表,索引在 B 中
C = [35, 1, 32, 6]
我使用这个代码:
C = A(B==1)
但是 C 是:
[35, 3, 8, 1]
我哪里错了?
您可以使用 sub2ind
将 row,col
索引转换为线性索引。
A = [35, 1, 6, 26;
3, 32, 7, 21;
31 9, 2, 22;
8, 28, 3, 17];
B = [1, 1;
1, 2;
2, 2;
1, 3];
linear_ind = sub2ind(size(A), B(:,1), B(:,2));
C = A(linear_ind)
这将导致
C =
35
1
32
6