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中实验以下示例,它发生沟通的功效 -

    此示例为函数 -

    Matlab GNU Octave

    建设一个3D曲面图。 建设剧本文件并键入以下代码 -

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

    MATLAB运行文件时,将显示以下三维图 -

    Matlab GNU Octave

    不兼容的例子

    固然MATLAB的所有焦点成果都可以在Octave中利用,可是尚有一些成果,譬喻微分和积分微积分,这两种语言都不完全匹配。本教程实验给出两种范例的示例,它们的语法差异。

    思量以下示例,个中MATLAB和Octave利用差异的函数来得到曲线的面积:f(x)= x^2 cos(x),对付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 GNU Octave

    可是为了给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));
    

    Matlab教程

    2017-11-02


    GNU Octave是像MATLAB这样的高级编程语言,它能与MATLAB兼容。它也是用于数值计较。Octave具有以下MATLAB的常见成果 -矩阵是根基数据范例它内置了对复