靠记忆总是记不住python和matlab的一些区别,道理上很简单,但很久不用就会忘记,自用的一些方法记录,持续更新
关于数组
数组创建
# python
import numpy as np
np.array([[1,2,3],[4,5,6]])
# matlab
a = [1 2 3;4 5 6];
- matlab和python创建和索引数组的区别
创建:
python用很多个中括号[],不同纬度的用逗号,隔开
matlab中创建用一个中括号[],不同纬度用分号隔开,索引用小括号()
索引:
python索引用一个中括号[],不同纬度用逗号隔开,用单个:表示所有,1:2:n表示开始、步长、结束
matlab索引用一个小括号,不同纬度用分号隔开,冒号用法相同
数组拼接
# python
featurs = np.concatenate((tmp1,tmp2),axis = 1)
# matlab
horzcat(A,B)
vertcat(A,B)
关于数组内存共享
在python中,若直接赋值,那么a和b是共享内存的,改变a,那么b也会跟着改变
a = a = np.array([[1,2,3],[4,5,6]])
b = a
a[0,2] = 5
print(b[0,2]) //--> 5
若需要生成一个不共享内存的矩阵,则使用copy()方法
b = a.copy()
而ma