2011-05-05 50 views
0

我把matlab代碼放到python中遇到了一點問題,我知道如何做循環和東西,但雙等號是相同的功能是成員,我不知道如何把它在python中把matlab代碼放到python中

for i=1:49 
    if path==var(path(1),i) == 0 & var(path(1),i) ~= 0 
     path(1,2) = var(r,i); 
     var2(i,1:2) = path; 
     path(1,1:2); 
     a = a+1; 
     two_connections(a,:) = path; 
+0

什麼是'path'? 'var(...,i)'做了什麼? (文檔不允許使用這種構造:http://www.mathworks.com/help/techdoc/ref/var.html。)這段代碼意味着什麼? – katrielalex 2011-05-05 09:35:07

+0

'=='在Matlab中與Python中的含義相同。你的問題還不清楚 – 2011-05-05 09:48:14

+0

@katrielalex:我猜這裏的'var'是他在別處定義的數組,而不是函數。 – kwatford 2011-05-05 14:56:15

回答

1

Matlab中的double double等號測試每個值是否相等。

換言之(A == b == c)中將評價爲1,如果A,B,C是等效的,否則爲0(即使一個==灣)

它足以確保即a == b和b == c(或a == b和a == c等)

代字號等號僅僅是「不等於」。

所以,你的if語句看起來像:

if (path == 0) and (var(path(1),i) == 0) and (var(path(1),i) != 0): 
+1

請注意'is'和== ==不等於。如果你用這個方法創建一個類'Z':'def __eq __(self,other):return 0 == other',那麼'Z()== 0'爲'True',而'Z()爲0'是'假'。我認爲'a是b'等同於'id(a)== id(b)'。 – 2011-05-05 10:22:37

+0

這是一個很好的觀點,我不是故意誤導人的。但是,在這種情況下,兩種表述都會以同樣的方式進行評估。 – jedwards 2011-05-05 10:28:05

+0

-can你可以編輯你的答案,以便「is」不等於「==」嗎?否則,它應該被低估 – jsbueno 2011-05-05 14:12:52