0

私は非常に単純なマトリックスのインデックス付けの例をやっています。コードは以下のとおりです

>> A=[ 1 2 3 4 ; 5 6 7 8 ; 9 10 11  12  ]

A =

     1     2     3     4
     5     6     7     8
     9    10    11    12

>> A(end, end-2)   

ans =

    10

>> A(2:end, end:-2:1)

ans =

     8     6
    12    10

ここで私は少し混乱しています。私が使用する A(end, end-2) と、最初の列まで2つの差があり、残りの列が1つだけの場合、それ以上の処理はありませんが、使用する A(2:end, end:-2:1)と 、残りの列が1つしかないときに6 10 どのように印刷 8 12 され、差を取る必要があります右から左に 2 つ , この簡単な点を誰か説明してください

4

2 に答える 2

1

選択A(end, end-2)内容:列 4(end)-2=2 に表示される A の最後の行の要素を取得します

選択A(2:end, end:-2:1)も同様に次のようになります:行 2 から 4(end) の要素を取得し、最後の列から開始して 2 のジャンプで逆方向に進みます。つまり、4 の次に 2 です。

インデックス付けを確認するには、行と列の位置でそれぞれendwithsize(A,1)またはif found を置き換えるだけです。size(A,2)

于 2013-09-16T20:55:29.430 に答える
1

まず一般的なもの:endインデックスの単なるプレースホルダー、つまり特定の配列次元の最後の位置です。たとえば、任意の配列の場合、A(end,1)列 1A(1,end)の最後の要素が選択され、最初の行の最後の要素が選択されます。

あなたの例でA(end, end-2)は、最後の行の2列前の最後の行の要素を選択します。

次のようなステートメントを解釈するには

A(2:end, end:-2:1)

最後の行/列要素の実際のインデックスで置き換えると役立つ場合があるendため、これは次と同等です

A(2:3, 4:-2:1)

さらに4:-2:1、リスト4,2は 4 から始まり、2 ずつ減少して (最小) 1 になるように指示しているため、リストと同等です。したがって、これは次と同等です。

A([2 3],[4 2])

最後に、次のインデックスの組み合わせは によって暗示されA([2 3],[4 2])ます。

 A(2,4)   A(2,2)
 A(3,4)   A(3,2)
于 2013-09-16T20:56:34.053 に答える