我们都知道matlab冒号运算符可以创建一个线性序列,即
1:5 = [1 2 3 4 5]
现在我发现冒号运算符的参数也可以应用于向量或矩阵。但是我不明白背后的定义。
实施例
[1 2 3 4]:5 == [1 2 3 4 5]
[1 2; 3 4]:3 == [1 2 3]
为什么会这样?
第二个参数也可以是矢量或矩阵。
最终我想了解诸如
之类的序列1:2:3:4:5
在matlab和[1 5]
中完全合法!
注意1:2:3:4:5:6
是关联的,即解析为((1:2:3):4:5):6
。
那么带有矩阵/向量参数的冒号运算符的行为是什么?
编辑:更正了左联结的陈述。
答案 0 :(得分:13)
冒号运算符的documentation表示:
如果指定非标量数组,则MATLAB将j:i:k解释为j(1):i(1):k(1)。
您的第一个示例被解释为1:3
,第二个示例被解释为1:5
具有两个以上:
的表达式被解析为左关联:
a:b:c:d:e==(a:b:c):d:e
>> 1:2:3:4:5
ans =
1 5