GNU Octave

GNU Octave

GNU Octave是一個類MATLAB軟體。其在GNU開放軟體框架下, 可以代替MATLAB的大多數功能,但不包括Simulink組件功能。

基本介紹

  • 中文名:八度線上
  • 外文名:Octave online
  • 性質:軟體
  • 創始時間:1988年
  • 系統開發:John W. Eaton
軟體歷史,技術細節,程式語言,特殊功能,相容性,

軟體歷史

該軟體肇始於1988年,其初衷是提供一些化學反應設計課程的輔助工具。
系統性開發則是由John W. Eaton在1992年接手才開始的。 第一個alpha測試版是在1993年一月四日釋出,1.0穩定版則是在同年二月十七日釋出。 最新的3.8.1穩定版在2014年3月7日釋出。
其名稱與音樂上的八度沒有直接關係。該軟體乃是以一位早期開發群的成員,同時也以敏於處理數值逼近問題著稱的前教授命名。

技術細節

Octave是以C++的標準模板函式庫編程而成。
Octave有自己Octave語言直譯器。
Octave可以動態外掛模組擴充。
Octave的直譯器可用gnuplot及Grace產生圖表及列印。(從3.8版本起,用OpenGL替代了gnuplot)

程式語言

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有許多相同的功能。
矩陣為基礎資料型別之一
內建支援複數
內建功能強大的數學函式及可擴充的函式庫
使用者可自定函式

相關詞條

熱門詞條

聯絡我們