MATLAB 编程/GNU Octave
此页面已从另一个项目 转移,需要进行 书籍化. 此页面要么需要修改以成为书籍的主页,要么需要修改以符合其将要包含的书籍的“本地样式指南”。 书籍化后,请删除 {{bookify}} 。 |
Octave 是一个免费的计算机程序,用于执行数值计算(作为 GNU 项目的一部分创建),它与 MATLAB 大致兼容。
该项目始于 1988 年。起初它打算作为化学反应器设计课程的辅助工具。约翰·W·伊顿于 1992 年开始实际开发。第一个 Alpha 版本可以追溯到 1993 年 1 月 4 日,1994 年 2 月 17 日发布了 1.0 版本。
这个名字与音乐无关。它是 Octave 作者之一的前任教授的名字,该教授以能够快速找到数值问题的良好近似值而闻名。
- Octave 使用 STL 库用 C++ 编写。
- Octave 具有一个解释 Octave 语言的解释器。
- Octave 本身可以通过动态加载模块进行扩展。
- Octave 解释器与 gnuplot 和 Grace 软件协同工作以创建绘图、图形和图表,以及保存或打印它们。
Octave 语言是一种解释型编程语言。它是一种结构化编程语言(C 语言就是一个例子),支持许多常见的 C 标准库构造,并且可以扩展以支持 UNIX 系统调用和函数。但是,它不支持按引用传递参数。
Octave 程序由一系列函数调用或脚本组成。该语言基于矩阵,并提供各种矩阵操作函数。它不是面向对象的,但支持数据结构。
它的语法与 MATLAB 非常相似,仔细编写脚本将使其能够在 Octave 和 MATLAB 上运行。
由于 Octave 是根据 GNU 通用公共许可证发布的,因此可以免费复制和使用。该程序在大多数 Unix 和类 Unix 操作系统以及 Microsoft Windows 上运行。
- 命令和变量名补全
在命令行中输入 TAB 键会导致 Octave 尝试补全变量、函数和文件名。Octave 使用光标前的文本作为要补全的名称的初始部分。
- 命令历史
在交互式运行时,Octave 会将输入的命令保存在内部缓冲区中,以便可以将其调用和编辑。
- 数据结构
Octave 包括有限数量的支持,用于在结构中组织数据。例如
octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string"; octave:2> x.a x.a = 1 octave:3> x.b x.b = 1 2 3 4 octave:4> x.c x.c = string
- 短路布尔运算符
Octave 的 `&&' 和 `||' 逻辑运算符以短路方式评估(类似于 C 语言中的相应运算符),并且与逐元素运算符 `&' 和 `|' 的工作方式不同。
- 自增和自减运算符
Octave 包含 C 语言的自增和自减运算符 `++' 和 `--',包括前缀和后缀形式。
- 展开保护
Octave 支持有限形式的异常处理,该处理模拟了 Lisp 的展开保护形式。展开保护块的一般形式如下所示
unwind_protect body unwind_protect_cleanup cleanup end_unwind_protect
- 可变长度参数列表
Octave 拥有一个处理接受未指定数量参数(无明确上限)的函数的机制。例如
以下是使用新语法打印标题和未指定数量值的函数示例
function foo (heading, ...) disp (heading); va_start (); while (--nargin) disp (va_arg ()); endwhile endfunction
- 可变长度返回值列表
Octave 还拥有一个处理返回未指定数量值的函数的机制。例如
function [...] = foo (n) for i = 1:n vr_val (i); endfor endfunction