fbpx
维基百科

GNU Octave

GNU Octave是一种采用高级编程语言的主要用于数值分析的软件。Octave有助于以数值方式解决线性和非线性问题,并使用与MATLAB兼容的语言进行其他数值实验。它也可以作为面向批处理的语言使用。因为它是GNU計劃的一部分,所以它是GNU通用公共许可证条款下的自由软件

GNU Octave
GNU Octave 4.3.0+ running on Linux
開發者John W. Eaton and many others[1]
初始版本1988年,​35年前​(1988
目前版本
  • 7.3.0 (2022年11月2日;穩定版本)[2][3]
源代码库
  • hg.savannah.gnu.org/hgweb/octave
编程语言C, C++, Fortran[4]
语言19种语言[來源請求]
许可协议GNU GPLv3
网站www.gnu.org/software/octave/ 
科学计算

Octave是MATLAB的主要自由替代品之一,其他还有ScilabFreeMat[6][7][8][9] 然而,与Octave相比,Scilab更少强调与MATLAB的(双向)句法兼容性。[6][10][11]


歷史

系統性開發則是由John W. Eaton在1992年接手才開始的。 第一個alpha測試版是在1993年1月4日釋出,1.0穩定版則是在1994年2月17日釋出[12]

其名稱與音樂上的八度沒有直接關係。該軟體乃是以一位早期開發群的成員,同時也以敏於處理數值逼近問題著稱的前化工系教授奧克塔夫·列文斯比爾(Octave Levenspiel)之名命名的。

技術細節

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中運行也是可能的,但設置較爲複雜。[13]

特殊功能

變數及函式名稱自動補齊

在命令列按下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以提供初步的LISPunwind_protect例外處理模式。通常unwind_protect表述區段英语Statement block可表示如下:

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有許多相同的功能。这也使得一部分Matlab程序可以直接或经过少量修改在Octave上运行,一些软件开发小组也使用两者兼容的语法,直接开发可以同时在Matlab和Octave使用的程序。

  1. 矩陣為基礎資料型別之一
  2. 內建支援複數
  3. 內建功能強大的數學函式及可擴充的函式庫
  4. 使用者可自定函式

参见

参考文献

  1. ^ Rik. . 10 June 2015 [14 June 2015]. (原始内容存档于2022-04-10). 
  2. ^ GNU Octave 7.3.0 Released. 2022年11月2日 [2022年11月9日] (英語). 
  3. ^ Version 7.3.0 released. 2022年11月2日 [2023年1月4日] (英語). 
  4. ^ Building - Octave. wiki.octave.org. GNU. [1 May 2018]. (原始内容于2020-07-06) (英语). 
  5. ^ GNU Octave 7.2.0 Released. 2022-07-28 [2022-07-28]. (原始内容于2022-08-06). 
  6. ^ 6.0 6.1 Trappenberg, Thomas. Fundamentals of Computational Neuroscience. Oxford University Press. 2010: 361. ISBN 978-0-19-956841-3. 
  7. ^ Muhammad, A; Zalizniak, V. Practical Scientific Computing. Woodhead Publishing. 2011: 3. ISBN 978-0-85709-226-7. 
  8. ^ Megrey, Bernard A.; Moksness, Erlend. Computers in Fisheries Research. Springer Science & Business Media. 2008: 345. ISBN 978-1-4020-8636-6. 
  9. ^ Kapuno, Raul Raymond. Programming for Chemical Engineers Using C, C++, and MATLAB. Jones & Bartlett Publishers. 2008: 365. ISBN 978-1-934015-09-4. 
  10. ^ Herman, Russell L. A Course in Mathematical Methods for Physicists. CRC Press. 2013: 42. ISBN 978-1-4665-8467-9. 
  11. ^ Wouwer, Alain Vande; Saucez, Philippe; Vilas, Carlos. Simulation of ODE/PDE Models with MATLAB, Octave and Scilab: Scientific and Engineering Applications. Springer. 2014: 114–115. ISBN 978-3-319-06790-2. 
  12. ^ About Octave. [2010-11-21]. (原始内容于2021-01-25). 
  13. ^ Installing MacOS X Bundle. GNU Octave. [2012-03-12]. (原始内容于2012-06-25). 

外部連結

  • Octave.org網頁(页面存档备份,存于互联网档案馆
  • 在線支持(含文檔) (页面存档备份,存于互联网档案馆
  • Octave快記(页面存档备份,存于互联网档案馆
  • Octave-forge社羣開發網頁 (页面存档备份,存于互联网档案馆
  • Octave教學與技術手冊 (页面存档备份,存于互联网档案馆)提供Octave相關教學與範例。
  • Octave Workshop:一個Octave的整合編程環境[永久失效連結]
  • - 適用於KDE
  • Octave線上計算(页面存档备份,存于互联网档案馆) - 可在網上執行Octave程式。
  • OctPlot (页面存档备份,存于互联网档案馆)圖形處理套件,提供高品質的螢幕輸出。
  • 利用GNU Octave作並行計算
  • Xoctave : GNU Octave GUI (页面存档备份,存于互联网档案馆

octave, 是一种采用高级编程语言的主要用于数值分析的软件, octave有助于以数值方式解决线性和非线性问题, 并使用与matlab兼容的语言进行其他数值实验, 它也可以作为面向批处理的语言使用, 因为它是gnu計劃的一部分, 所以它是gnu通用公共许可证条款下的自由软件, running, linux開發者john, eaton, many, others, 初始版本1988年, 35年前, 1988, 目前版本7, 2022年11月2日, 穩定版本, 源代码库hg, savannah, hgweb, oc. GNU Octave是一种采用高级编程语言的主要用于数值分析的软件 Octave有助于以数值方式解决线性和非线性问题 并使用与MATLAB兼容的语言进行其他数值实验 它也可以作为面向批处理的语言使用 因为它是GNU計劃的一部分 所以它是GNU通用公共许可证条款下的自由软件 GNU OctaveGNU Octave 4 3 0 running on Linux開發者John W Eaton and many others 1 初始版本1988年 35年前 1988 目前版本7 3 0 2022年11月2日 穩定版本 2 3 源代码库hg wbr savannah wbr gnu wbr org wbr hgweb wbr octave编程语言C C Fortran 4 语言19种语言 來源請求 许可协议GNU GPLv3网站www wbr gnu wbr org software octave 科学计算Octave是MATLAB的主要自由替代品之一 其他还有Scilab和FreeMat 6 7 8 9 然而 与Octave相比 Scilab更少强调与MATLAB的 双向 句法兼容性 6 10 11 目录 1 歷史 2 技術細節 3 Octave語言 4 特殊功能 5 MATLAB相容性 6 参见 7 参考文献 8 外部連結歷史 编辑系統性開發則是由John W Eaton在1992年接手才開始的 第一個alpha測試版是在1993年1月4日釋出 1 0穩定版則是在1994年2月17日釋出 12 其名稱與音樂上的八度沒有直接關係 該軟體乃是以一位早期開發群的成員 同時也以敏於處理數值逼近問題著稱的前化工系教授奧克塔夫 列文斯比爾 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中運行也是可能的 但設置較爲複雜 13 特殊功能 编辑變數及函式名稱自動補齊在命令列按下TAB鍵 Octave會自動補齊變數 函式或檔案的名稱 Octave會依據游標之前的文字來補齊 指令回溯在互動模式下 Octave會將歷次指令存在暫存檔中以俟呼叫與編輯 資料建構 Octave包含了初步的資料建構功能 例如 octave 1 gt x a 1 x b 1 2 3 4 x c string octave 2 gt x a x a 1 octave 3 gt x b x b 1 2 3 4 octave 4 gt x c x c string 短路邏輯算符 Octave的 amp amp 及 的邏輯算符是在短路的方式下運算 如同C語言中的相仿算符 相反於逐算子算符 amp 及 遞增與遞減算符Octave如同C語言一樣具有可前置或後置的遞增與遞減算符 例外處理 Octave以提供初步的LISP式unwind protect例外處理模式 通常unwind protect的表述區段 英语 Statement block 可表示如下 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 endfunctionMATLAB相容性 编辑Octave最初便是模彷Matlab而設計 自然與Matlab有許多相同的功能 这也使得一部分Matlab程序可以直接或经过少量修改在Octave上运行 一些软件开发小组也使用两者兼容的语法 直接开发可以同时在Matlab和Octave使用的程序 矩陣為基礎資料型別之一 內建支援複數 內建功能強大的數學函式及可擴充的函式庫 使用者可自定函式参见 编辑Scilab R語言 開放源代碼軟件列表参考文献 编辑 Rik contributors in 10 June 2015 14 June 2015 原始内容存档于2022 04 10 GNU Octave 7 3 0 Released 2022年11月2日 2022年11月9日 英語 引文格式1维护 未识别语文类型 link Version 7 3 0 released 2022年11月2日 2023年1月4日 英語 引文格式1维护 未识别语文类型 link Building Octave wiki octave org GNU 1 May 2018 原始内容存档于2020 07 06 英语 GNU Octave 7 2 0 Released 2022 07 28 2022 07 28 原始内容存档于2022 08 06 6 0 6 1 Trappenberg Thomas Fundamentals of Computational Neuroscience Oxford University Press 2010 361 ISBN 978 0 19 956841 3 Muhammad A Zalizniak V Practical Scientific Computing Woodhead Publishing 2011 3 ISBN 978 0 85709 226 7 Megrey Bernard A Moksness Erlend Computers in Fisheries Research Springer Science amp Business Media 2008 345 ISBN 978 1 4020 8636 6 Kapuno Raul Raymond Programming for Chemical Engineers Using C C and MATLAB Jones amp Bartlett Publishers 2008 365 ISBN 978 1 934015 09 4 Herman Russell L A Course in Mathematical Methods for Physicists CRC Press 2013 42 ISBN 978 1 4665 8467 9 Wouwer Alain Vande Saucez Philippe Vilas Carlos Simulation of ODE PDE Models with MATLAB Octave and Scilab Scientific and Engineering Applications Springer 2014 114 115 ISBN 978 3 319 06790 2 About Octave 2010 11 21 原始内容存档于2021 01 25 Installing MacOS X Bundle GNU Octave 2012 03 12 原始内容存档于2012 06 25 外部連結 编辑维基共享资源中相关的多媒体资源 GNU Octave維基教科書中的相關電子教程 en Octave Programming TutorialOctave 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 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title GNU Octave amp oldid 74048751, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。