如何访问具有 n 个索引向量的 n 维矩阵?
How to access n-D matrix with n index vectors?
我有一个矩阵
A = repmat(1:7,7,1);
我有索引向量
idx1 = [1 3 5];
idx2 = [1 3 5];
我想在 idx1(i),idx2(i) 表示的二维坐标处访问 A。
当我做的时候
A(idx1,idx2) = 0;
我得到了 idx 1 中的每个元素,以及 idx2 中的所有元素。
我只想给相应的元素赋零值。
再次:我得到
A =
0 2 0 4 0 6 7
1 2 3 4 5 6 7
0 2 0 4 0 6 7
1 2 3 4 5 6 7
0 2 0 4 0 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
但我想要
A =
0 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 0 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 0 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
如何实现?
谢谢
最简单的方法可能是使用 sub2ind
生成索引到 A
所需的线性索引:
linear_ind = sub2ind(size(A),idx1,idx2);
A(linear_ind) = 0;
我有一个矩阵
A = repmat(1:7,7,1);
我有索引向量
idx1 = [1 3 5];
idx2 = [1 3 5];
我想在 idx1(i),idx2(i) 表示的二维坐标处访问 A。
当我做的时候
A(idx1,idx2) = 0;
我得到了 idx 1 中的每个元素,以及 idx2 中的所有元素。 我只想给相应的元素赋零值。
再次:我得到
A =
0 2 0 4 0 6 7
1 2 3 4 5 6 7
0 2 0 4 0 6 7
1 2 3 4 5 6 7
0 2 0 4 0 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
但我想要
A =
0 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 0 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 0 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
如何实现?
谢谢
最简单的方法可能是使用 sub2ind
生成索引到 A
所需的线性索引:
linear_ind = sub2ind(size(A),idx1,idx2);
A(linear_ind) = 0;