2012-08-10 119 views
3

想在Python中實現下面列出的Matlab命令。我能夠找出在Python中的Matlab等效命令,但我沒有得到確切的結果。有人可以幫助我實現這一目標。將matlab程序轉換爲等效的python代碼

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是我的數組布爾數據類型「陣列([FALSE,FALSE,TRUE,假假],D型=布爾)]」。我怎樣才能使我的最後一個命令返回結果的形式爲0或1的結果是完全一樣的Matlab。

回答

2

使用列表解析轉換布爾爲int:

[int(val) for val in x] 
+0

THX,它可以與陣列命令例如可以使用返回的列表是ndarray數據類型。但有沒有辦法,當我執行命令時,結果將直接在該類型中。我知道numpy數組中有一些方法/屬性可以控制數據類型。 – sarbjit 2012-08-10 09:34:27

+0

你是對的,有'x.astype(int)'例如 – bph 2012-08-10 09:37:33

+0

是.astype工作 – sarbjit 2012-08-10 09:42:34