2016-07-25 48 views
2

我具有矩阵如何访问具有n个索引向量的n维矩阵?

A = repmat(1:7,7,1); 

我有索引向量

idx1 = [1 3 5]; 
idx2 = [1 3 5]; 

我想访问在由IDX1(i)来表示的二维坐标,IDX2(i)中。

当我做

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 

如何实现这一目标?

由于

+1

为了清楚起见,应所需输出的第一行是'0 2 1 4 1 6 7'或'0 2 3 4 5 6 7'? – thewaywewalk

+0

对不起。现在编辑。 – Gulzar

+0

@thewaywewalk感谢您要求OP澄清。我想我现在可以取消删除我的答案。 – edwinksl

回答

4

最简单的方法可能是使用sub2ind以产生所需的索引的线性索引到A

linear_ind = sub2ind(size(A),idx1,idx2); 
A(linear_ind) = 0;