MATLAB与Numpy函数对照表

以下是 MATLAB 与 NumPy 的常用函数对照表,帮助熟悉 MATLAB 的用户快速上手 NumPy:


1. 矩阵/数组创建

MATLABNumPy说明
zeros(m, n)np.zeros((m, n))全0矩阵
ones(m, n)np.ones((m, n))全1矩阵
eye(m)np.eye(m)单位矩阵
rand(m, n)np.random.rand(m, n)0~1均匀分布随机矩阵
randn(m, n)np.random.randn(m, n)标准正态分布随机矩阵
linspace(a, b, n)np.linspace(a, b, n)线性等分向量
magic(m)无直接等价,需自定义魔方矩阵

2. 数学运算

MATLABNumPy说明
a * ba @ b 或 np.matmul(a, b)矩阵乘法
a .* ba * b元素乘法
a'a.T 或 a.transpose()转置
inv(a)np.linalg.inv(a)矩阵求逆
a \ bnp.linalg.solve(a, b)解线性方程组 ax = b
sum(a)np.sum(a, axis=0)按列求和(默认行为不同)
mean(a)np.mean(a, axis=0)按列求均值
max(a)np.max(a, axis=0)按列找最大值
reshape(a, m, n)a.reshape(m, n)重塑矩阵形状

3. 线性代数

MATLABNumPy说明
eig(a)np.linalg.eig(a)特征值和特征向量
svd(a)np.linalg.svd(a)奇异值分解
det(a)np.linalg.det(a)矩阵行列式
norm(a)np.linalg.norm(a)矩阵/向量范数
diag(a)np.diag(a)提取对角线元素或构造对角矩阵

4. 索引与切片

MATLABNumPy说明
a(2,3)a[1, 2]访问第2行第3列元素(索引从0开始)
a(2:5, :)a[1:5, :]提取第2到5行
a(:, [1,3])a[:, [0, 2]]提取第1和3列
a > 5a > 5布尔索引(用法类似)
find(a > 5)np.where(a > 5)返回满足条件的索引

5. 文件操作

MATLABNumPy说明
save('data.mat', a)np.save('data.npy', a)保存为二进制文件
load('data.mat')np.load('data.npy')加载二进制文件
csvread('data.csv')np.loadtxt('data.csv', delimiter=',')读取CSV文件

6. 其他常用函数

MATLABNumPy说明
size(a)a.shape返回维度(元组形式)
length(a)len(a) 或 a.shape[0]最长维度的长度
repmat(a, m, n)np.tile(a, (m, n))重复矩阵
meshgrid(x, y)np.meshgrid(x, y)生成网格坐标
plot(x, y)plt.plot(x, y) (需 import matplotlib.pyplot as plt)绘制曲线

关键区别

  1. 索引

    • MATLAB:从 ​1 开始,且索引用圆括号 ()
    • NumPy:从 ​0 开始,索引用方括号 []
  2. 行列顺序

    • MATLAB:按列优先(Fortran风格)。
    • NumPy:默认按行优先(C风格)。
  3. 运算符

    • MATLAB:* 是矩阵乘法,.* 是元素乘法。
    • NumPy:@ 或 np.matmul 是矩阵乘法,* 是元素乘法。
  4. 函数参数

    • MATLAB:维度参数直接传递,如 sum(a, 1)
    • NumPy:维度用 axis 指定,如 np.sum(a, axis=0)

示例代码

矩阵乘法
% MATLAB
C = A * B;
# NumPy
C = A @ B
按列求和
% MATLAB
s = sum(A, 1);
# NumPy
s = np.sum(A, axis=0)

通过对照表可以快速迁移 MATLAB 代码到 NumPy,但需注意语法和底层实现的差异!

参考:

 (1) python中numpy与matlab的对应关系

(2)MATLAB-Numpy函数对照表_matlab numpy 对照 表-优快云博客

(3) 从 Matlab 到 NumpyNumpy 和 Matlab 比较

(4)numpy与matlab互转操作

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩瀚之水_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值