个人 学习matlab与numpy的关联

学习的内容https://numpy.org/doc/stable/user/numpy-for-matlab-users.html#table-of-rough-matlab-numpy-equivalents

axis=0列,1行

1.定义矩阵

p=np.array([[1,2,3],[4,5,6]](逗号分隔逗号换维度)
m=[1 2 3 ;4 5 6](逗号分割分号换维度)
合并矩阵
m=[a b]
p=np.concatenate((a,b),1)
m=[a;b]
p=np.concatenate((a,b),0)
随机数
m=rand(3,4)
p=random.rand((3, 4))
扩充复制
m=repmat(a, m, n)
p=np.tile(a, (m, n))

2.访问

m=a(end-4:end,:)
p=a[-5:]
冒号都表示全,end与-1等价,py左闭右开,matlab左闭右闭
m=start:step:end
p=np.arange(start, end, step)

3.常用函数

1.大小
m=size(a,n)
p=a.shape[n-1]
2.元素数
m=numel(a)
p=np.size(a)
3.查找满足条件的索引
m=find(a > 0.5)
p=np.nonzero(a > 0.5)
4.全零和全一
m=zeros(3,4),m=ones(3,4)
p=np.zeros((3, 4)),p=np.ones((3, 4))
5.linspace(min,max,n)
完全等价,返回minmax之间等间距的n个数
6.L2范数
m=norm(v)
p=np.sqrt(v @ v)或np.linalg.norm(v)
7.最大值
max(max(a))=a.max()或np.nanmax(a)
最大元素(对于 MATLAB,使用 ndims(a)<=2,如果有 NaN,将忽略这些元素并返回最大值)
max(a)=a.max(0)
数组中每列的最大元素数a
max(a,[ ],2)=a.max(1)
每行数组的最大元素a
max(a,b)=np.maximum(a, b)
比较和元素,并返回每对的最大值ab

4.复制

matlab中直接a=b,操作互不影响
numpy中array对象直接a=b(非复制情况)对b操作同时影响a
浅复制c = a.view()(不完全相同,对c操作不影响a)
深复制c=a.copy()(只是值相同其他完全不同,对c操作不影响a)
具体参考https://blog.csdn.net/qq_34995963/article/details/100178252
以及https://blog.csdn.net/Dontla/article/details/105833488

5.矩阵常用操作函数

排序sort,行列式det,逆inv,特征值eig

不清楚到这里查http://mathesaurus.sourceforge.net/matlab-numpy.html

你可能感兴趣的:(numpy,学习,matlab)