📈 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));应用领域
- 数值计算:矩阵运算和数值分析
- 信号处理:数字信号处理、滤波器设计
- 控制系统:自动控制和系统仿真
- 图像处理:计算机视觉和图像分析
- 通信系统:通信仿真和调制解调
- 机器学习:分类、回归和深度学习
- 金融工程:量化分析和风险评估
开发环境搭建
- 获取 MATLAB 许可证:mathworks.com
- 安装 MATLAB 和所需工具箱
- 替代方案:GNU Octave(开源,
sudo apt install octave) - 在线版本:MATLAB Online(需许可证)
学习路线
- 入门阶段:矩阵基础 → 脚本编写 → 绘图 → 控制流
- 进阶阶段:函数 → 文件 I/O → 数据结构 → 调试
- 实战阶段:信号处理 → 图像处理 → 控制系统 → 统计分析
- 高级阶段:Simulink 建模 → GPU 计算 → App Designer → 工具箱开发