跳至內容

GNUOctave

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

GNU Octave是一種採用進階程式語言的主要用佇數值分析的軟體。Octave 對於以數值方式解決線性佮非線性問題,並使用佮 MATLAB 相容的語言進行其他的數值實驗。伊嘛會當做面向批次的處理的語言使用。因為伊是 GNU 計劃的一部份,所以伊是 GNU 通用公眾授權條款條款下的自由軟體。

Octave 是 MATLAB 的主要自由替代品之一,其他閣有 Scilab 和 FreeMat。毋過,佮 Octave 相比並,Scilab 閣較少強調佮 MATLAB 的(雙向)句法相容性。


歷史

系統性開發是由 John W . Eaton 佇一九九二年接手才開始的。 第一啦 alpha 測試版是佇一九九三年一月初四釋出,一鋪排穩定版則是佇一九九四年二月十七日釋出。

其名講這个佮音樂上的八度無直接關係。該軟體乃是以一位較早開發群的成員,同時也以敏於處理數值逼近問題出名的前化工系教授奧克塔夫 ・ 列文斯比爾(Octave Levenspiel)之名號名的。

技術細節

  • Octave 是以 C + + 的標準模板函式庫編程而成。
  • Octave 有家己 Octave 語言直譯器。
  • Octave 會當動態掛模組擴充。
  • Octave 的直譯器其實會當用 gnuplot 佮 Grace 產生圖表佮列印。

Octave 語言

Octave 語言是直譯式佮結構化(類於第二代的 BASIC)的程式語言,支援真濟 C 語言風格的標準函式的功能,同時會當使用 UNIX 的系統呼叫以進行擴充增進功能,毋過無支援以參照的方式傳達參數。

Octave 的核心是由一組內底起的(built-in)矩陣運算語言(如四則運算)和會當載入函式(Loadable Function)組成(比如講求矩陣逆 inv), 其他會當佇核心語言的上實現而且效能開銷袂增加的函式呼叫則一般以 Octave 指令碼的形式存在(譬如講求解方程組的 fsolve 函式)。 Octave 直譯器會自動處理各種無仝類型的調用。

Octave 支援資料建構,嘛支援基本的物件導向編程,但是通常猶是共當做向過程的程式設計語言來看待。

伊的語法基本上佮 Matlab 一致,嚴謹編寫的程式碼應該當時會當佇 Matlab 佮 Octave 執行。但是若調 Matlab 工具包,則一般袂使直接佇 Octave 最運行,因為 Octave 附帶的工具包佮 Matlab 無相容。

因為 Octave 是以 GNU 通用公眾授權條款授權,所以會當自由去複製、流通佮使用。Octave 大部份的類似 Unix 作業系統中執行,亦可在 Microsoft Windows 中執行。佇咧 Mac OS X 中運行嘛是可能的,但是設定伊會較複雜。

特殊功能

變數佮函式名稱自動補齊

佇命令列揤下 TAB 鍵,Octave 會自動補齊變數,函式抑是檔案的名稱。Octave 會根據游標進前的文字來補予齊。

指令回溯

佇互動模式下,Octave 會將歷次指令存在暫存檔中以等穫叫和編輯。

資料建構:

Octave 包括初步的資料建構功能,比如講:

` ` ` octave : 一 > x . a=一 ; x . b=[一 , 二 ; 三 , 四] ; x . c=" string " ; octave : 二 > x . a x . a=一 octave : 三 > x . b x . b=

一二三四

octave : 四 > x . c x . c=string ` ` `

短路邏輯算符:

Octave 的 ` & &'佮 ` | |'的邏輯算符是佇短路的方式下運算是(如同 C 語言內底仝款的準算符), 顛倒反過逐算子算符 ` &'佮 ` |'。

遞增與遞減算符

Octave 如同 C 語言仝款有法度置抑是後置的遞增與遞減算符。

例外處理:

Octave 以提供初步的 LISP 式 ` unwind _ protect ` 例外處理模式。通常 ` unwind _ protect ` 的表述區段會當表示如下:

會當變長度參數表列:

Octave 提供用佇處理無指明參數個數的時的函式呼叫機制:利用特殊的 ` varargin ` 做參數來呼叫函式的。

會當變長度回傳表列:

單一函式會當 ` varargout ` 這一特殊回傳值來回傳任意數目的值,比如講:

MATLAB 相容性

Octave 上代先就是模樣 Matlab 猶閣設計,自然佮 Matlab 有真濟仝款的功能。這嘛是會當予一部份 Matlab 程式會當直接抑是經過少量修改佇咧 Octave 上執行,一寡軟體開發小組也使用兩者相容的語法,直接開發會當同時佇 Matlab 和 Octave 使用的程式。

一 . 矩陣為基礎資料型別之一的二 . 內建支援複數三 . 內建功能強大的數學函式佮會當擴充的函式庫四 . 使用者會當自訂函式

參見

  • Scilab
  • R 語言
  • 開放原始碼軟體列表

參考文獻

外部連結

  • Octave . org 網頁
  • 線支援(含文件)
  • Octave 緊記啦
  • Octave-forge 社拓開發網頁
  • Octave 教學佮技術寫冊提供 Octave 相關教學和範例。
  • Octave Workshop:一个 Octave 的整合編程環境
  • kOctave:圖型介面-適用佇咧 KDE
  • Octave 線頂算-會當佇網路頂懸執行 Octave 程式。
  • Octave FAQ 緊記有關繪圖的部份
  • OctPlot 圖形處理套件,提供高品質的螢幕輸出。
  • Help-Octave 佇咧 Gmane 的郵件論壇存檔
  • Octave 的 MPI toolbox 工具箱利用 GNU Octave 做並行計算
  • Xoctave  : GNU Octave GUI