【问题标题】:behavior of colon operator (:) with matrix or vector arguments带有矩阵或向量参数的冒号运算符 (:) 的行为
【发布时间】:2015-03-27 09:47:05
【问题描述】:

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

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

编辑:更正左结合性的陈述。

【问题讨论】:

  • 根据我的经验(我没有搜索过文档),[a b c]:[d e; f g] 相当于a:d。即冒号选取每个向量或矩阵的第一个元素
  • @LuisMendo:是的,我可以通过实验确认。我没有在文档中找到它。

标签: matlab


【解决方案1】:

冒号运算符的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

【讨论】:

    猜你喜欢
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    相关资源
    最近更新 更多