这个问题挺有意思。
之前真没试过居然冒号居然还可以这么用,而且还不报错(在早期的版本中,例如6.5,有警告信息Warning: Colon operands must be real scalars,但可以用命令warning off MATLAB:colon:operandsNotRealScalar关闭该警告)。
文档中写到的只有两个冒号的用法,我觉得应该是这一条:
j:i:k is empty if i == 0, if i > 0 and j > k, or if i < 0 and j < k
在多余两个冒号时,应该涉及到冒号运算符的结合问题,但到底是怎样的规则,我还没搞明白。以下是我做的一些测试:>> 1:2:3
ans =
1 3
>> 1:2:3:4
ans =
1 2 3 4
>> 1:2:3:4:5
ans =
1 5
>> 1:4:3:2:5
ans =
1 3 5
>> 1:2:3:4:5:6
ans =
1 2 3 4 5 6
>> 1:5:4:3:2:6
ans =
1 2 3 4 5 6
至于说empty vector的含义,非常简单,直译就是空向量,也就是元素个数为0的向量。不过,在MATLAB中,一般称为空矩阵(Empty matrix)。