1

我有以下矩阵:

A=zeros(2,4);
D=[ 1 2;
    3 4;
    5 6;
    7 8];

v=rand(1,8);

例如:

v= [0.8147    0.9058    0.1270    0.9134    0.6324    0.0975    0.2785    0.5469]

现在当我运行时A(D)=vA变为:

A=[0.8147    0.9058    0.1270    0.9134;
   0.6324    0.0975    0.2785    0.5469]

当我将D条目更改为另一个值时,我会得到不同的配置A,例如,如果我输入:

D=[ 8 7;
    6 5;
    4 3;
    2 1];

然后A变成:

A=[0.5469    0.2785    0.0975    0.6324;
   0.9134    0.1270    0.9058    0.8147]

有谁知道这种索引是什么?

4

1 回答 1

2

所以为了更清楚,让我们重新定义你v

v = 10:10:80

(即v = [10 20 30 40 50 60 70 80];

现在,当

 D=[8 7;
    6 5; 
    4 3; 
    2 1];

然后

A(D)=v

    A =

    80    70    60    50
    40    30    20    10

让我们看看这是如何工作的。因此,首先,当您按 索引时AD会变D平,因此A(D) = vA(D(:)) = v(测试它!)和

D(:)

ans =

     8
     6
     4
     2
     7
     5
     3
     1

因此,为了逐个元素地分解它,我们将A(D(1)) = v(1)在替换D(1)and之后使用 which ,因此最后一个元素v(1)A(8) = 1010。让我们进一步看一些元素。A(D(4)) = v(4)成为A(2) = 40. 但哪个元素是A(2)?线性索引首先倒数行(列主要排序),即

A(1) == A(1,1)
A(2) == A(2,1)
A(3) == A(1,2)
A(4) == A(2,2)
A(5) == A(1,3)
A(6) == A(2,3)
etc...

A(2)位置也是如此(2,1)……

于 2013-05-03T13:28:44.020 回答