1

私はMatlab(実際にはOctave)を学んでいて、何かが本当に私を混乱させています:

octave:14> a = [2 3 4]
                          a =

                             2   3   4

octave:15> a(1)
                          ans =  2
octave:16> a(1,1)
                          ans =  2
octave:17> a(1,1,1)
                          ans =  2
octave:18> a(1,1,2)
    error: A(I,J,...): index to dimension 3 out of bounds; value 2 out of bound 1

octave:18> a(2,1,1)
    error: A(I,J,...): index to dimension 1 out of bounds; value 2 out of bound 1

a(1, 1, 1)は違法だと思っていましたが、それは私を混乱させます...マトリックスにいくつのインデックスが許可されていますか?

私が言うとき、それはどういう意味a(1, 1, 1)ですか?

4

1 に答える 1

2

配列では、配列が空でない限り、最初の行、列、ページなどが常に定義されます。

だからもし

a = 3;

a(1) %# works
a(1,1) %# works
a(1,1,1) %# works
a(1,1,1,1) %# works

のサイズaは、理論的には、[1,1,1,1,1,1,....]

便宜上、スカラーのサイズはとして与えられます[1,1]。つまり、長さ1の他の次元は言及されていません。

于 2013-01-25T23:08:23.183 に答える