GNU Octave
维基百科,自由的百科全书
GNU Octave |
|
---|---|
开发者 | John W. Eaton |
最新版 | 3.0.0 / 2007年12月21日 |
操作系统 | 跨平臺 |
类型 | 数学软件 |
许可协议 | GNU通用公共許可證 |
网站 | http://www.octave.org/ |
Octave 是一個旨在提供與Matlab語法相容的開放源碼 科學計算及數值分析的工具;它同時也是GNU計畫成員之一。
目录 |
[编辑] 歷史
該軟體肇始於1988年,其初衷是提供一些化學反應設計課程的輔助工具。
系統性開發則是由John W. Eaton在1992年接手才開始的。 第一個alpha測試版是在1993年一月四日釋出,1.0穩定版則是在同年二月十七日釋出。 最新的3.0.0穩定版在2007年十二月廿一日釋出。
其名稱與音樂上的八度沒有直接關係。該軟體乃是以一位早期開發羣的成員,同時也以敏於處理數值逼近問題著稱的前教授命名。
[编辑] 技術細節
[编辑] Octave語言
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
[编辑] MATLAB相容性
Octave最初便是模彷Matlab而設計,自然與Matlab有許多相同的功能。
[编辑] 其他
[编辑] 外部連結
- Octave.org 網頁
- Octave Workshop:一個 Octave的整合編程環境
- kOctave:圖型介面 - 適用於KDE
- 線上文件
- Octave-forge社羣開發網頁
- Octave 快記
- Octave線上計算 - 可在網上執行Octave程式。
- Octave FAQ 快記有關繪圖的部份
- OctPlot 圖形處理套件,提供高品質的螢幕輸出。
- Help-Octave 在Gmane的郵件論壇存檔
- Octave的MPI toolbox工具箱 利用GNU Octave作並行計算
[编辑] 參考文件
|
||
---|---|---|
历史 | 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 |