GNU Octave是像MATLAB這樣的高級編程語言,它與MATLAB大部分兼容。它也用于數(shù)值計算。
Octave與MATLAB具有以下共同特征-
矩陣是基本數(shù)據(jù)類型
它內(nèi)置了對復(fù)數(shù)的支持
它具有內(nèi)置的數(shù)學(xué)函數(shù)和庫
它支持用戶定義的功能
GNU Octave也是可免費重新發(fā)行的軟件。您可以根據(jù)自由軟件基金會發(fā)布的GNU通用公共許可(GPL)的條款重新分發(fā)和/或修改它。
大多數(shù)MATLAB程序都在Octave中運行,但是某些Octave程序可能無法在MATLAB中運行,因為Octave允許某些MATLAB不能使用的語法。
例如,MATLAB僅支持單引號,但是Octave支持單引號和雙引號來定義字符串。如果您正在尋找有關(guān)Octave的教程,那么請從頭開始閱讀本教程,其中涵蓋了MATLAB和Octave。
本教程中介紹的幾乎所有示例都與MATLAB以及Octave兼容。讓我們嘗試下面的示例,在MATLAB和Octave中產(chǎn)生相同的結(jié)果,而無需任何語法更改-
本示例為函數(shù)g = xe- (x 2 + y 2)創(chuàng)建3D表面圖。創(chuàng)建一個腳本文件并輸入以下代碼-
[x,y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps
運行文件時,MATLAB顯示以下3-D映射-
盡管MATLAB的所有核心功能都可以在Octave中使用,但是有些功能(例如,差分和積分演算)在兩種語言中都不完全匹配。本教程嘗試給出兩種示例,它們的語法有所不同。
考慮下面的示例,其中MATLAB和Octave使用不同的函數(shù)來獲取曲線的面積:f(x)= x 2 cos(x)表示?4≤x≤9。以下是代碼的MATLAB版本-
f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Area: '), disp(double(a));
運行文件時,MATLAB繪制圖形-
顯示以下結(jié)果
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Area: 0.3326
但是要在Octave中給出相同曲線的面積,您將必須使用以下symbolic包-
pkg load symbolic symbols x = sym("x"); f = inline("x^2*cos(x)"); ezplot(f, [-4,9]) print -deps graph.eps [a, ierror, nfneval] = quad(f, -4, 9); display('Area: '), disp(double(a));