我想將一些Matlab代碼翻譯成Python。不幸的是我沒有Matlab,所以我不能嘗試語法。if語句語法Matlab
我感到困惑下面
for i = 1:200
if mod(i,10) == 0
i
end
的if語句for循環進行計算一些依賴於I值。 if語句做什麼?
可我還問什麼用零做了一個稀疏矩陣和之間的差異,例如
A = sparse(n,m)
B = zeros(n,m)
謝謝!
我想將一些Matlab代碼翻譯成Python。不幸的是我沒有Matlab,所以我不能嘗試語法。if語句語法Matlab
我感到困惑下面
for i = 1:200
if mod(i,10) == 0
i
end
的if語句for循環進行計算一些依賴於I值。 if語句做什麼?
可我還問什麼用零做了一個稀疏矩陣和之間的差異,例如
A = sparse(n,m)
B = zeros(n,m)
謝謝!
它通常是最好創建單獨的問題,但我會盡量同時滿足:
1)的mod
功能performes模操作,即分裂後的餘數。 mod(i,10) == 0
將是1,如果一個數字可以被10整除,否則爲0。因此if語句將在數字i爲10的倍數時執行。
由於沒有else
部分,如果條件不成立,則不會發生任何事情。
通過只寫i
(不帶分號),當前值i
被打印到命令窗口。您的示例代碼的輸出因此將爲10
,20
,...,200
。
2)zeros
命令創建了一個尺寸爲n x m
(當然)爲零的「正常」矩陣。 MATLAB還有一個特殊的sparse memory organization。由於稀疏矩陣大部分由零組成,因此不需要用所有零填充內存,但可以將非零值保存到它們的位置。這是使用sparse
函數自動完成的。要將稀疏矩陣轉換爲「正常」格式,可以使用full
函數。
if
語句檢查i除以10的modulus(除法後的餘數)是否爲0。
當它被評估爲真時,它會將數字i
打印到命令窗口中。
謝謝,這是否意味着for循環的其餘部分只在我可以被10整除時運行?我不明白的實際部分是我在if語句中做了什麼,以及當if語句不正確時會發生什麼 – 2015-02-09 15:29:52
如果if語句不成立,則不會發生任何情況。如果if語句爲true,則在執行'for'循環中的下一個數字之前,執行'if'語句下面的行。 – HavelTheGreat 2015-02-09 15:31:09
但是在這種情況下,所有if語句執行的都是'i',它已經從for循環計數器中定義。我不明白if語句有什麼不同,無論是真是假。這是我想要了解的其他代碼。 – 2015-02-09 15:33:36
請參閱documentation for mod
。 mod(i,10)
返回i
除以10
後的餘數,其中i
爲分紅,10
爲除數。 if
語句檢查該餘數是否等於0
。
天真的Python翻譯將是
for i in range(1, 201):
if not i % 10:
print(i)
,但我們可以通過指定一個步長值保存一些工作,
for i in range(10, 201, 10):
print(i)
對於未來的參考,如果你不能得到一個MATLAB許可證,或對於一個快速入侵,你可能想嘗試八度,一個免費的克隆。 – 2015-02-09 17:09:06