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

明確にするために、vas を再定義しましょう

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

これがどのように機能するか見てみましょう。したがって、最初に でインデックスを作成AするDと、Dフラット化されるので(テストしてください!) とA(D) = v同じです。A(D(:)) = v

D(:)

ans =

     8
     6
     4
     2
     7
     5
     3
     1

したがって、要素ごとに分解するために、 which をand isA(D(1)) = v(1)に置き換えた後、最後の要素は 10 になります。いくつかの要素をさらに見てみましょう。になります。しかし、どの要素ですか?まあ、線形インデックスは最初に行をカウントダウンします(列の主要な順序)つまりD(1)v(1)A(8) = 10A(D(4)) = v(4)A(2) = 40A(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 に答える