2016-07-25 49 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;