SuperAPI AI 工具集

matlab

数据与分析

查看项目

更新于 10-16 05:23

技能介绍

用途

MATLAB 是面向矩阵运算与科学计算优化的数值计算环境;GNU Octave 是免费开源、与 MATLAB 高度兼容的替代方案。本技能用于编写 MATLAB/Octave 脚本,完成矩阵运算、数据分析、可视化与科学计算任务。

主要能力

  1. 矩阵运算:创建矩阵与向量(如 A = [1 2 3; 4 5 6; 7 8 9]、v = 1:10、linspace),特殊矩阵(eye、zeros、ones、rand、randn),以及转置、矩阵乘法、逐元素乘法、线性方程组求解、矩阵求逆等操作。
  2. 线性代数:特征值与特征向量(eig)、奇异值分解(svd)、LU/QR/Cholesky 分解,以及线性系统求解(A \ b、linsolve)。
  3. 绘图与可视化:2D 绘图(plot、xlabel、ylabel、title、grid、hold on、legend)、3D 曲面(meshgrid、surf、colorbar),以及图形保存(saveas、print)。
  4. 数据导入导出:读取表格与矩阵(readtable、readmatrix),写出数据(writetable、writematrix),MAT 文件读写(save、load),图像读写(imread、imwrite)。
  5. 控制流与函数:条件语句、for/while 循环、函数定义、匿名函数。
  6. 统计与数据分析:描述性统计(mean、std、var、median、min、max)、相关与协方差(corrcoef、cov)、线性回归(polyfit、polyval)、移动统计(movmean)。
  7. 微分方程:使用 ode45 求解 ODE,包括将高阶方程转换为一阶系统。
  8. 信号处理: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/