带有矩阵或向量参数的冒号运算符(:)的行为

时间:2015-03-27 09:47:06

标签: matlab

我们都知道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

那么带有矩阵/向量参数的冒号运算符的行为是什么?

编辑:更正了左联结的陈述。

1 个答案:

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