讓我們說,我們有一個矩陣A1和兩個向量V1和V2如下:與向量作爲在MATLAB指數全矩陣
A1=zeros(5, 5);
v1=[1 2 3];
v2=[5 5 4];
有沒有一種方法來替代A1的元素使用v1和v2作爲指標一個接一個?即在A1(1,5),A1(2,5)和A1(3,4)中插入一些元素。
以下做出v1和v2的所有組合。我只想要一個接一個。即v1(1)與v2(1),v1(2)與v2(2)等等。
A1(v1, v2)
讓我們說,我們有一個矩陣A1和兩個向量V1和V2如下:與向量作爲在MATLAB指數全矩陣
A1=zeros(5, 5);
v1=[1 2 3];
v2=[5 5 4];
有沒有一種方法來替代A1的元素使用v1和v2作爲指標一個接一個?即在A1(1,5),A1(2,5)和A1(3,4)中插入一些元素。
以下做出v1和v2的所有組合。我只想要一個接一個。即v1(1)與v2(1),v1(2)與v2(2)等等。
A1(v1, v2)
基本上你的行和列的信息,並需要將其轉換爲線性索引,索引到A1
。對於這一點,使用sub2ind -
A1(sub2ind(size(A1),v1(1),v2(1))) = 12
A1(sub2ind(size(A1),v1(2),v2(2))) = 10
A1(sub2ind(size(A1),v1(3),v2(3))) = 9
輸出 -
A1 =
0 0 0 0 12
0 0 0 0 10
0 0 0 9 0
0 0 0 0 0
0 0 0 0 0
如果您有存儲在某些數組,array1
這些值,使用了相同的結果如上 -
array1 = [12 10 9];
A1(sub2ind(size(A1),v1,v2)) = array1;
將您的載體轉換爲線性索引:
A1=zeros(5, 5);
v1=[1 2 3];
v2=[5 5 4];
ind=sub2ind(size(A1), v1, v2);
A1(ind(1))=1
A1 =
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
等