如何访问具有 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;