【发布时间】:2019-12-06 13:49:43
【问题描述】:
我正在研究我找到的 Octave 函数的代码,并且发现了冒号运算符的奇怪用法。我在文档或 MathWorks 官方博客中找不到这种行为的解释(例如 Colon Operator)
假设我们有几个向量:
>> a=[1,2,3]
a =
1 2 3
>> b=[7,8,9]
b =
7 8 9
现在如果你使用冒号运算符,你有:
>> a:b
ans =
1 2 3 4 5 6 7
经过几次尝试我明白的是,上面的用法相当于:
>> a(1):b(1)
ans =
1 2 3 4 5 6 7
我的假设正确吗?
某处有一些文档吗?
【问题讨论】:
-
在 MATLAB 中,可以重现相同的行为。
-
你会在hg.octave.org/octave/file/tip/libinterp/octave-value/…中找到实现,只取base、increment和limit的第一个元素
-
注意重复:这确实是相同的根本原因。但是,副本不要求(因此其答案未提及)八度语法。这恰好是完全相同的(请参阅我的答案),因为 Octave 旨在成为 MATLAB 克隆。
-
@Adriaan GNU Octave 并非旨在成为 MATLAB 克隆。用户和贡献者看到了相似之处并提供了补丁,使他们能够在 Octave 中运行 MATLAB 代码。今天的目标是不破坏与 MATLAB 的兼容性,但 Octave 仍然具有 MATLAB 中没有的独特元素
标签: arrays matlab octave operator-keyword colon