matlab到python编码
我在MATLAB中有这段代码,我正在尝试用Python转换它matlab到python编码,python,matlab,Python,Matlab,我在MATLAB中有这段代码,我正在尝试用Python转换它 yc(1:45)=-2; yc(46:90)=2; yc(91:136)=-2; yc(137:182)=2; 我不知道如何在python thnx中转换它,以帮助我直接等效 使用numpy的直接等价物为: >>> import numpy as np >>> yc = np.empty(182) >>> yc[:45] = -2 # Equivalent t
yc(1:45)=-2;
yc(46:90)=2;
yc(91:136)=-2;
yc(137:182)=2;
我不知道如何在python thnx中转换它,以帮助我直接等效
使用numpy
的直接等价物为:
>>> import numpy as np
>>> yc = np.empty(182)
>>> yc[:45] = -2 # Equivalent to, yc[0:45] = -2
>>> yc[45:90] = 2
>>> yc[90:136] = -2
>>> yc[136:] = 2 # Equivalent to, yc[136:182] = 2
其中创建具有给定形状的随机值的数组。然后,我们通过在片中访问来分配不同的值
备用方式
您还可以尝试使用和:
yc=np.arange(182)
>>>yc=np.选择(条件列表=[
yc<45,(45>>yc
数组([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
这里,np.arange
创建了一个值范围从0到181(总共182个值)的数组,我们创建了一个新数组,根据不同的条件替换数组中的不同值
要记住的事情:
- MATLAB从1开始索引,而python从0开始
- 您需要预先分配一个数组,以便通过切片进行分配
yc
,它需要什么参数?
>>> yc = np.arange(182)
>>> yc = np.select(condlist=[
yc < 45, (45 <= yc) & (yc < 90),
(90 <= yc) & (yc < 136), yc >= 136
],
choicelist=[-2, 2, -2, 2])
>>> yc
array([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])