Octave 和 MATLAB 共同的特點
矩陣的基本數(shù)據(jù)類型
它內(nèi)置支持復(fù)數(shù)
它具有內(nèi)置數(shù)學(xué)函數(shù)和庫
它支持用戶自定義功能
GNU Octave 是自由可再分發(fā)的軟件,這意味著你可以在自由軟件基金會發(fā)布的GNU通用公共許可證(GPL)的條款下重新分配或?qū)λM行修改。
MATLAB 和 Octave
極大一部分的 MATLAB 程序運行在 Octave,但是有一些 Octave 支持的語法是 MATLAB 不支持的,所以這些 Octave 程序可能無法正常運行。
就好比 MATLAB 只支持單引號,但是Octave能夠支持單,雙引號來定義字符串
兼容的示例
本教程中涉及的幾乎所有的例子都是用 MATLAB 以及 Octave 兼容。
在 MATLAB 和 Octave 試試下面的例子,沒有任何語法的變化并且會有相同的結(jié)果產(chǎn)生:以下例子中將建立一個3D表面地圖函數(shù) g = xe-(x2 + y2) 。
在MATLAB中建立一個腳本文件,并輸入下述代碼:
[x,y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps
運行該文件,顯示出的3-D地圖:

不兼容的例子
MATLAB 中有一部分功能是不能夠在 Octave 中使用的,舉幾個例子:微分和積分積分,無論是從語言還是其他角度,這并不完全匹配。
下面給出兩種類型的例子,以此顯示他們的語法不同的地方。
在下面的例子中 MATLAB 和 Octave 使不同功能的使用面積曲線: f(x) = x2 cos(x) for ?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 中使用相同的面積曲線,必須使用符號包如下:
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));
更多建議: