MATLAB 与 Python 科学计算
IC/EE 学生在信号处理、控制系统、数据分析、仿真等场景中都需要科学计算工具。MATLAB 是行业标准,Python 是免费且更通用的替代。两者都要会用。
MATLAB
为什么学
- 《信号与系统》《数字信号处理》《控制原理》课程实验几乎都用 MATLAB
- Simulink(MATLAB 的图形化仿真模块)是控制系统和电力系统设计的行业标准
- 学校一般提供正版授权,在校期间可免费使用
核心工具箱
| 工具箱 |
用途 |
| Signal Processing Toolbox |
滤波器设计、FFT、谱分析 |
| Control System Toolbox |
传递函数、Bode 图、PID 设计 |
| Communications Toolbox |
调制解调、信道仿真 |
| Deep Learning Toolbox |
神经网络(可结合 GPU) |
| Simulink |
框图仿真,动态系统建模 |
学习资源
Python 科学计算栈
为什么学
- 免费,跨平台,生态最大
- 与深度学习框架(PyTorch/TensorFlow)无缝衔接
- 脚本化自动化比 MATLAB 更灵活
核心库
| 库 |
用途 |
| NumPy |
矩阵/向量运算,MATLAB 最直接的替代 |
| SciPy |
信号处理、优化、线性代数、统计 |
| Matplotlib |
画图,与 MATLAB plot() 用法相似 |
| Pandas |
表格数据处理 |
| Jupyter Notebook |
交互式计算,适合实验报告 |
环境搭建(推荐)
# 安装 Miniconda(轻量,推荐)
# https://docs.conda.io/en/latest/miniconda.html
conda create -n ee python=3.11
conda activate ee
conda install numpy scipy matplotlib pandas jupyter
常用示例
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 画低通滤波器的频率响应
b, a = signal.butter(4, 0.2) # 4 阶巴特沃斯,截止频率 0.2
w, h = signal.freqz(b, a)
plt.plot(w / np.pi, 20 * np.log10(abs(h)))
plt.xlabel('Normalized Frequency'); plt.ylabel('Gain (dB)')
plt.grid(); plt.show()
MATLAB vs Python:如何选择
| 场景 |
推荐 |
| 课程实验(信号/控制) |
MATLAB(老师用 MATLAB 出题) |
| Simulink 仿真 |
MATLAB |
| 深度学习 / AI |
Python |
| 数据处理脚本、自动化 |
Python |
| 毕业论文画图 |
两者都行,Python 更易迁移到 LaTeX |