Skip to content

📈 MATLAB

概述:MATLAB(Matrix Laboratory)由 MathWorks 公司开发,是一种用于数值计算、可视化和编程的高级语言。MATLAB 以矩阵运算为核心,广泛应用于工程计算、科学研究和工业分析领域。

概述

MATLAB 属于 其他小众/经典语言 分类。MATLAB 的核心思想是"一切皆矩阵",即使是标量也是 1×1 矩阵。

语言特点

  • 矩阵为核心:所有数据都是矩阵,原生支持线性代数
  • 丰富的工具箱:Signal Processing、Image Processing、Control System 等专业工具箱
  • 强大的可视化:2D/3D 绘图和交互式图表
  • Simulink 集成:基于模型的设计和仿真环境
  • 交互式开发:Command Window 即时执行和验证

Hello World

matlab
disp('Hello, World!');

基础语法

变量与矩阵

matlab
% 标量
age = 25;
name = 'MATLAB';

% 向量
v = [1, 2, 3, 4, 5];
v = 1:5;           % 等同于 [1 2 3 4 5]
v = 0:0.5:2;       % [0 0.5 1 1.5 2]

% 矩阵
A = [1 2 3; 4 5 6; 7 8 9];  % 3x3 矩阵
B = zeros(3, 3);              % 3x3 零矩阵
C = ones(2, 4);               % 2x4 全 1 矩阵
D = eye(3);                   % 3x3 单位矩阵
E = rand(2, 3);               % 2x3 随机矩阵

% 矩阵运算
C = A + B;        % 矩阵加法
C = A * B;        % 矩阵乘法
C = A .* B;       % 逐元素乘法(点运算)
C = A';           % 转置
x = A \ b;        % 求解线性方程组 Ax = b

控制流

matlab
% if-elseif-else
if age >= 18
    disp('成年人');
elseif age >= 12
    disp('青少年');
else
    disp('儿童');
end

% for 循环
for i = 1:10
    disp(i);
end

% while 循环
while count > 0
    count = count - 1;
end

% switch
switch day
    case 'Monday'
        disp('周一');
    case {'Saturday', 'Sunday'}
        disp('周末');
    otherwise
        disp('工作日');
end

函数

matlab
% 函数定义(在单独的 .m 文件中)
function result = add(a, b)
    result = a + b;
end

% 多返回值
function [mean_val, std_val] = stats(data)
    mean_val = mean(data);
    std_val = std(data);
end

% 匿名函数
square = @(x) x.^2;
square(5);  % 25

绘图

matlab
% 2D 绘图
x = linspace(0, 2*pi, 100);
y = sin(x);
plot(x, y, 'r-', 'LineWidth', 2);
xlabel('x');
ylabel('sin(x)');
title('正弦函数');
grid on;

% 多条曲线
plot(x, sin(x), 'r-', x, cos(x), 'b--');
legend('sin(x)', 'cos(x)');

% 3D 绘图
[X, Y] = meshgrid(-2:0.1:2);
Z = X.^2 + Y.^2;
surf(X, Y, Z);
xlabel('X'); ylabel('Y'); zlabel('Z');

% 子图
subplot(2, 2, 1); plot(x, sin(x));
subplot(2, 2, 2); plot(x, cos(x));
subplot(2, 2, 3); plot(x, tan(x));
subplot(2, 2, 4); plot(x, exp(x));

数据分析

matlab
% 统计
data = randn(1000, 1);
mu = mean(data);        % 均值
sigma = std(data);      % 标准差
med = median(data);     % 中位数

% 拟合
p = polyfit(x, y, 2);   % 二次多项式拟合
y_fit = polyval(p, x);

% FFT
Y = fft(signal);
P2 = abs(Y / length(signal));

应用领域

  • 数值计算:矩阵运算和数值分析
  • 信号处理:数字信号处理、滤波器设计
  • 控制系统:自动控制和系统仿真
  • 图像处理:计算机视觉和图像分析
  • 通信系统:通信仿真和调制解调
  • 机器学习:分类、回归和深度学习
  • 金融工程:量化分析和风险评估

开发环境搭建

  1. 获取 MATLAB 许可证:mathworks.com
  2. 安装 MATLAB 和所需工具箱
  3. 替代方案:GNU Octave(开源,sudo apt install octave
  4. 在线版本:MATLAB Online(需许可证)

学习路线

  1. 入门阶段:矩阵基础 → 脚本编写 → 绘图 → 控制流
  2. 进阶阶段:函数 → 文件 I/O → 数据结构 → 调试
  3. 实战阶段:信号处理 → 图像处理 → 控制系统 → 统计分析
  4. 高级阶段:Simulink 建模 → GPU 计算 → App Designer → 工具箱开发

返回首页 | 查看所有语言

编程语言技术文档