Octave 和 MATLAB 共同的特點(diǎn)
矩陣的基本數(shù)據(jù)類(lèi)型
它內(nèi)置支持復(fù)數(shù)
它具有內(nèi)置數(shù)學(xué)函數(shù)和庫(kù)
它支持用戶(hù)自定義功能
GNU Octave 是自由可再分發(fā)的軟件,這意味著你可以在自由軟件基金會(huì)發(fā)布的GNU通用公共許可證(GPL)的條款下重新分配或?qū)λM(jìn)行修改。
MATLAB 和 Octave
極大一部分的 MATLAB 程序運(yùn)行在 Octave,但是有一些 Octave 支持的語(yǔ)法是 MATLAB 不支持的,所以這些 Octave 程序可能無(wú)法正常運(yùn)行。
就好比 MATLAB 只支持單引號(hào),但是Octave能夠支持單,雙引號(hào)來(lái)定義字符串
兼容的示例
本教程中涉及的幾乎所有的例子都是用 MATLAB 以及 Octave 兼容。
在 MATLAB 和 Octave 試試下面的例子,沒(méi)有任何語(yǔ)法的變化并且會(huì)有相同的結(jié)果產(chǎn)生:以下例子中將建立一個(gè)3D表面地圖函數(shù) g = xe-(x2 + y2) 。
在MATLAB中建立一個(gè)腳本文件,并輸入下述代碼:
[x,y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps
運(yùn)行該文件,顯示出的3-D地圖:
不兼容的例子
MATLAB 中有一部分功能是不能夠在 Octave 中使用的,舉幾個(gè)例子:微分和積分積分,無(wú)論是從語(yǔ)言還是其他角度,這并不完全匹配。
下面給出兩種類(lèi)型的例子,以此顯示他們的語(yǔ)法不同的地方。
在下面的例子中 MATLAB 和 Octave 使不同功能的使用面積曲線(xiàn): f(x) = x2 cos(x) for ?4 ≤ x ≤ 9。
我們先來(lái)看看 MATLAB 中的代碼:
f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Area: '), disp(double(a));
運(yùn)行該文件,MATLAB繪制如下圖表:
顯示結(jié)果如下:
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Area: 0.3326
在 Octave 中使用相同的面積曲線(xiàn),必須使用符號(hào)包如下:
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));
更多建議: