用途
MATLAB 是面向矩阵运算与科学计算优化的数值计算环境;GNU Octave 是免费开源、与 MATLAB 高度兼容的替代方案。本技能用于编写 MATLAB/Octave 脚本,完成矩阵运算、数据分析、可视化与科学计算任务。
主要能力
- 矩阵运算:创建矩阵与向量(如
A = [1 2 3; 4 5 6; 7 8 9]、v = 1:10、linspace),特殊矩阵(eye、zeros、ones、rand、randn),以及转置、矩阵乘法、逐元素乘法、线性方程组求解、矩阵求逆等操作。 - 线性代数:特征值与特征向量(
eig)、奇异值分解(svd)、LU/QR/Cholesky 分解,以及线性系统求解(A \ b、linsolve)。 - 绘图与可视化:2D 绘图(
plot、xlabel、ylabel、title、grid、hold on、legend)、3D 曲面(meshgrid、surf、colorbar),以及图形保存(saveas、print)。 - 数据导入导出:读取表格与矩阵(
readtable、readmatrix),写出数据(writetable、writematrix),MAT 文件读写(save、load),图像读写(imread、imwrite)。 - 控制流与函数:条件语句、for/while 循环、函数定义、匿名函数。
- 统计与数据分析:描述性统计(
mean、std、var、median、min、max)、相关与协方差(corrcoef、cov)、线性回归(polyfit、polyval)、移动统计(movmean)。 - 微分方程:使用
ode45求解 ODE,包括将高阶方程转换为一阶系统。 - 信号处理:FFT、FIR 滤波器设计与滤波(
fir1、filter)、卷积(conv)。
使用方式
运行 MATLAB 脚本:
# MATLAB (commercial)
matlab -nodisplay -nosplash -r "run('script.m'); exit;"
# GNU Octave (free, open-source)
octave script.m
安装 GNU Octave:
# macOS
brew install octave
# Ubuntu/Debian
sudo apt install octave
Windows 可从 https://octave.org/download 下载。
常见模式包括:数据分析流水线(加载、清洗、分组汇总、可视化、保存)、数值模拟(如热方程时间步进)、批量处理多个文件。
适用场景
- 矩阵与数组运算、线性代数求解
- 科学计算与数值模拟
- 数据导入、清洗、统计分析与可视化
- 微分方程求解与信号处理
- 批量处理 CSV 等数据文件
限制与注意事项
- GNU Octave 与 MATLAB 高度兼容,多数脚本无需修改即可运行,但存在差异:Octave 可用
#或%注释(MATLAB 仅%);Octave 允许++、--、+=运算符;部分工具箱函数在 Octave 中不可用;Octave 包需使用pkg load。 - 最佳实践:尽量向量化操作、预分配数组、按数据类型选择 table 或矩阵、为函数添加注释文档。
参考文件
- matrices-arrays.md:矩阵创建、索引、操作与运算
- mathematics.md:线性代数、微积分、ODE、优化、统计
- graphics-visualization.md:2D/3D 绘图、定制与导出
- data-import-export.md:文件 I/O、表格、数据格式
- programming.md:函数、脚本、控制流、OOP
- python-integration.md:MATLAB 与 Python 互调
- octave-compatibility.md:MATLAB 与 GNU Octave 差异
- executing-scripts.md:执行生成的脚本与测试
附加资源
- MATLAB 文档:https://www.mathworks.com/help/matlab/
- GNU Octave 手册:https://docs.octave.org/latest/
- MATLAB Onramp(免费课程):https://www.mathworks.com/learn/tutorials/matlab-onramp.html
- File Exchange:https://www.mathworks.com/matlabcentral/fileexchange/