matlab程序到等效python代码的转换

matlab程序到等效python代码的转换,python,numpy,scipy,Python,Numpy,Scipy,我们希望在Python中实现下面列出的Matlab命令。我能够用Python计算出与Matlab等效的命令,但我没有得到确切的结果。有人能帮我做到这一点吗 MATLAB代码: n0 = 3 n1 = 1 n2 = 5 n = [n1:n2] >> 1 2 3 4 5 x = [(n - n0) == 0] >> 0 0 1 0 0 PYTHON代码: import numpy n0 = 3 n1 = 1 n2 = 5 n = r_[n1:n2+1] >>

我们希望在Python中实现下面列出的Matlab命令。我能够用Python计算出与Matlab等效的命令,但我没有得到确切的结果。有人能帮我做到这一点吗

MATLAB代码:

n0 = 3
n1 = 1
n2 = 5
n = [n1:n2]
>> 1 2 3 4 5
x = [(n - n0) == 0]
>> 0 0 1 0 0
PYTHON代码:

import numpy 
n0 = 3
n1 = 1
n2 = 5
n = r_[n1:n2+1]
>> [1 2 3 4 5]
x = r_[(n-n0) == 0]
>> [False False True False False]

因此,x是布尔数据类型为“[array([False,False,True,False-False],dtype=bool]”的数组。如何使上一个命令以0或1的形式返回结果,使结果与Matlab完全相同。

使用列表理解将布尔值转换为int:

[int(val) for val in x]

Thx,它可以与array命令一起使用,以便返回的列表为ndarray数据类型。但有没有一种方法,在我执行命令时,结果将直接是该类型的。我知道numpy数组中有一些方法/属性可以用来控制数据类型。