MATLAB GNU Octave教程

2018-08-14 16:50 更新

GNU Octave 是一種高級編程語言,像 MATLAB,它主要是用 MATLAB 兼容。

GNU Octave 也可以用來進行數(shù)值計算,還有豐富的 C++ 接口可以讓用戶編程時調(diào)用。

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));


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號