MATLAB-GNU Octave教程

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ā)和/或修改它。

MATLAB vs Octave

大多數(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中的3D映射

不兼容的實例

盡管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));
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清