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

And*_* H. 15 matlab

我们都知道matlab冒号运算符来创建一个线性序列,即

1:5 = [1 2 3 4 5]
Run Code Online (Sandbox Code Playgroud)

现在我发现冒号运算符的参数也可以应用于向量或矩阵.但是我不明白背后的定义.

例子

[1 2 3 4]:5 == [1 2 3 4 5]

[1 2; 3 4]:3 == [1 2 3]
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

第二个参数也可以是矢量或矩阵.

最后,我想了解诸如此类的序列

1:2:3:4:5 
Run Code Online (Sandbox Code Playgroud)

这是完全合法的matlab和[1 5]顺便说一句!

注意1:2:3:4:5:6是左关联的,即解析为((1:2:3):4:5):6.

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

编辑:纠正了左关联的陈述.

Dan*_*iel 14

冒号运算符的文档说:

如果指定非标量数组,则MATLAB将j:i:k解释为j(1):i(1):k(1).

你的第一个例子被解释为1:3,第二个例子被解释为1:5

具有两个以上的表达式:被解析为左关联:

a:b:c:d:e==(a:b:c):d:e
Run Code Online (Sandbox Code Playgroud)

.

    >> 1:2:3:4:5

ans =

     1     5
Run Code Online (Sandbox Code Playgroud)