MATLAB GNU Octave 教程

  • GNU Octave 教程

    GNU Octave是像MATLAB这样的高级编程语言,它与MATLAB大部分兼容。它也用于数值计算。
    Octave与MATLAB具有以下共同特征-
    • 矩阵是基本数据类型
    • 它具有对复数的内置支持
    • 它具有内置的数学函数和库
    • 它支持用户定义的函数
    GNU Octave也是可免费重新发行的软件。您可以根据自由软件基金会发布的GNU通用公共许可(GPL)的条款重新分发和/或修改它。
  • MATLAB vs Octave

    大多数MATLAB程序都在Octave中运行,但是某些Octave程序可能无法在MATLAB中运行,因为Octave允许某些MATLAB不能使用的语法。
    例如,MATLAB仅支持单引号,但是Octave支持单引号和双引号来定义字符串。如果您正在寻找有关Octave的教程,那么请从头开始阅读本教程,其中涵盖了MATLAB和Octave。
    相容范例
    本教程中介绍的几乎所有示例均与MATLAB以及Octave兼容。让我们尝试下面的示例,在MATLAB和Octave中产生相同的结果,而无需任何语法更改-
    本示例为函数g = xe-(x 2 + y 2)创建3D表面图。创建一个脚本文件并输入以下代码-
    
    [x,y] = meshgrid(-2:.2:2);
    g = x .* exp(-x.^2 - y.^2);
    surf(x, y, g)
    print -deps graph.eps
    
    运行文件时,MATLAB显示以下3-D映射-
    graphics
    不兼容的例子
    尽管MATLAB的所有核心功能都可以在Octave中使用,但是有些功能(例如,差分和积分演算)在两种语言中都不完全匹配。本教程尝试给出两种类型的语法不同的示例。
    考虑下面的示例,其中MATLAB和Octave使用不同的函数来获取曲线的面积:-4≤x≤9的f(x)= x 2 cos(x)。以下是MATLAB版本的代码-
    
    f = x^2*cos(x);
    ezplot(f, [-4,9])
    a = int(f, -4, 9)
    disp('Area: '), disp(double(a));
    
    运行文件时,MATLAB绘制图形-
    differential
    显示以下结果
    
    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));