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 回答