MATLAB Vs. Python Numpy

15 篇文章 4 订阅
5 篇文章 0 订阅
MATLABNumpy注释
a && ba and b逻辑 AND
1*i, 1*j, 1i, 1j1j复数
epsspacing(1)1 与最近浮点数的距离
ndims(a)ndim(a), a.ndima 的维数
numel(a)size(a), a.sizea 的元素个数
size(a)shape(a), a.shapea 的形状
size(a,n)a.shape[n-1]第 n 维的大小
a(2,5)a[1,4]第 2 行第 5 列元素
a(1:3,5:9)a[0:3][:,4:9]特定行列(1~3 行,5~9 列)
a(1:n-1)a.flatten(1)[0:n-2]将矩阵变为一个向量,这里 1 表示沿着列进行转化
a(n)a.flatten(1)[n] 
[1,2,3;4,5,6]array([[1.,2.,3.],[4.,5.,6.]])2x3 矩阵
a(end)a[-1]最后一个元素
a'a.conj().T复共轭转置
a.'a.T转置
a ./ ba/b逐元素除法
a * bdot(a,b)矩阵乘法
a .* ba * b逐元素乘法
a.^3a**3逐元素立方
a^2dot(a,a)平方
a^p (p>2)dot(dot(a,a),a)......主元素
rand(3,4)random.rand(3,4)0~1 随机数
sum(sum(abs(x)))sum(abs(x))求x矩阵所有元素和
logical(eye(x))eye(x)>0取x维对角1矩阵,并转为逻辑值
reshape(x, 1, 1, P)reshape(x, (1, 1, P))重塑一个x矩阵为1 \times 1 \times P
norm(v)sqrt(dot(v,v)), linalg.norm(v)
invnp.linalg.inv(a)求矩阵的逆
[V,D]=eig(a)D,V = linalg.eigh(a)特征值分解
reshape(e, M*N, P)reshape(e, (M*N, P),order='F')按照列重塑矩阵
   

分数幂

MATLAB:

[1 2; 2 3]^0.05

ans =

   0.9620 + 0.1053i   0.0697 - 0.0651i
   0.0697 - 0.0651i   1.0317 + 0.0402i

Python:

numpy.array([[1,2],[2,3]])**0.05
Out: 
array([[1.        , 1.03526492],
       [1.03526492, 1.05646731]])

 矩阵特征分解

MATLAB

[V,D]=eig([1,2;2,3])

V =

   -0.8507    0.5257
    0.5257    0.8507


D =

   -0.2361         0
         0    4.2361

Python:

[D,V] = numpy.linalg.eigh(a)

[-0.23606798  4.23606798]

[[-0.85065081  0.52573111]
 [ 0.52573111  0.85065081]]
[D,V] = numpy.linalg.eig(a)

[-0.23606798  4.23606798]

[[-0.85065081 -0.52573111]
 [ 0.52573111 -0.85065081]]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值