MATLAB GNU Octave 教程

GNU Octave 是类似于MATLAB的高级编程语言,它与MATLAB大多数时候兼容。它主要用于数值计算。

Octave与MATLAB具有以下常见特性:

  • 矩阵是基本数据类型
  • 它内置支持复数
  • 它具有内置的数学函数和库
  • 它支持用户定义函数

GNU Octave也是可自由重新分发的软件。我们可以在自由软件基金会发布的GNU通用公共许可证(GPL)的条款下重新分发和/或修改它。


MATLAB与Octave的比较:

大多数MATLAB程序可以在Octave中运行,但有些Octave程序可能无法在MATLAB中运行,因为Octave允许一些MATLAB不允许的语法。

例如,MATLAB只支持单引号,而Octave支持单引号和双引号来定义字符串。如果您正在寻找Octave的教程,则请从这个涵盖MATLAB和Octave的教程开始。

兼容的示例

本教程中涵盖的几乎所有示例都与MATLAB和Octave兼容。让我们尝试在MATLAB和Octave中运行以下示例,它们将在没有任何语法更改的情况下产生相同的结果。

此示例创建一个三维表面图,用于函数g=xe-(x2+y2)。创建一个脚本文件并键入以下代码。

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

当运行文件时,MATLAB显示以下三维图形。

3-D Map in Matlab

不兼容的示例

虽然Octave中提供了MATLAB的所有核心功能,但有一些功能例如微分和积分计算,在两种语言中并不完全匹配。本教程试图提供两种语言中的不同示例,其中它们的语法有所不同。

考虑以下示例,在该示例中MATLAB和Octave使用不同的函数来获得曲线f(x) = x2 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绘制以下图形。

matlab 定积分

显示如下结果

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

查看笔记

扫码一下
查看教程更方便