Matlab矩阵允许多少个索引?

时间:2013-01-25 23:01:44

标签: matlab matrix octave

我正在学习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)是什么意思?

1 个答案:

答案 0 :(得分: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的其他维度。