|
GNU Octave |
|
|---|---|
| 开发 | John W. Eaton |
| 最近版本 | 3.0.1 / 2008年4月21日 |
| 操作系统 | 跨平台 |
| 类型 | 数学软件 |
| 许可协议 | GNU通用公共许可证 |
| 网站 | http://www.octave.org/ |
|
查看 • 讨论 • 编辑 • 历史
|
|
Octave 是一个旨在提供与Matlab语法相容的开放源码 科学计算及数值分析的工具;它同时也是GNU计划成员之一。
目录 |
该软件肇始于1988年,其初衷是提供一些化学反应设计课程的辅助工具。
系统性开发则是由John W. Eaton在1992年接手才开始的。 第一个alpha测试版是在1993年一月四日释出,1.0稳定版则是在同年二月十七日释出。 最新的3.0.0稳定版在2007年十二月廿一日释出。
其名称与音乐上的八度没有直接关系。该软件乃是以一位早期八度群的成员,同时也以敏于处理数值逼近问题著称的前教授命名。
Octave语言是直译式及结构化(类于C语言)的编程语言,支援许多C语言的标准函式库提供的功能,同时可以使用UNIX的系统呼叫以进行扩充增进功能,但不支援以参照的方式传递参数。
Octave程式包含了许多脚本函式呼叫,它本身是以矩阵为基础并提供许多矩阵的操作函式。它并非面向对象编程语言但支援资料建构。
它的语法基本上与Matlab一致,严谨编写的程式码应同时可在Matlab及Octave执行。
由于Octave是以GNU通用公共许可证授权,所以可以自由地复制、流通与使用。Octave可在大部份的类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例外处理模式。通常unwind_protect的表述区段可表示如下:
unwind_protect body unwind_protect_cleanup cleanup end_unwind_protect
Octave提供用于处理未指明参数个数时的函式呼叫机制:利用特殊的varargin作为参数来呼叫函式。
function s = plus (varargin)
if (nargin==0)
s = 0;
else
s = varargin{1} + plus (varargin{2:nargin});
endif
endfunction
单一函式可以varargout这一特殊回传值来回传任意数目的值,例如:
function varargout = multiassign (data)
for k=1:nargout
varargout{k} = data(:,k);
endfor
endfunction
Octave最初便是模彷Matlab而设计,自然与Matlab有许多相同的功能。
|
查 • 论 • 编 • 历
|
||
|---|---|---|
| 历史 | GNU宣言 · GNU计划 · 自由软件基金会 · 自由软件历史 | |
| GNU许可证 | GNU通用公共许可证 · GNU宽通用公共许可证 · GNU自由文档许可证 · GPL linking exception | |
| 软件 | GNU (Variants) · GNOME · Gnuzilla · Gnash · Bash · GCC · GNU Emacs · GNU C 函式库 · Coreutils · GNU build system · Other GNU packages and programs | |
| 发言人 | Robert J. Chassell · Loïc Dachary · Ricardo Galli · Georg C. F. Greve · Federico Heinz · Benjamin Mako Hill · Bradley M. Kuhn · 伊本·莫格林 · Brett Smith · 理查德·斯托曼 · John Sullivan | |
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History