- Matlab教程
- MATLAB - 主页
- MATLAB - 概述
- MATLAB - 环境设置
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - M 文件
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 决策
- MATLAB - 循环
- MATLAB - 向量
- MATLAB - 矩阵
- MATLAB - 数组
- MATLAB - 冒号表示法
- MATLAB - 数字
- MATLAB - 字符串
- MATLAB - 函数
- MATLAB - 数据导入
- MATLAB - 数据输出
- MATLAB 高级版
- MATLAB - 绘图
- MATLAB - 图形
- MATLAB - 代数
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 集成
- MATLAB - 多项式
- MATLAB - 变换
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB 有用资源
- MATLAB - 快速指南
- MATLAB - 有用的资源
- MATLAB - 讨论
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 -(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 将显示以下 3D 地图 -
不兼容的示例
尽管 Octave 提供了 MATLAB 的所有核心功能,但有一些功能(例如微分和积分微积分)在两种语言中并不完全匹配。本教程尝试提供两种类型的示例,但它们的语法有所不同。
考虑以下示例,其中 MATLAB 和 Octave 使用不同的函数来获取曲线面积: f(x) = x 2 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 会绘制图形 -
显示如下结果
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));