2012-11-09 62 views
1

如何強制評估模塊中的所有符號?在模塊中沒有完全評估?

vout[vin_] = Module[{x=vin,y}, 
    y = 200000*(1.2 - x); 
    Print[y]; 
    y 
]; 
Print[vout[0]]; 

我期待這個打印同樣的事情(240000)兩次,而是我得到這個:

200000*(1.2 - vin) 
240000. 

任何知道該怎麼辦在這裏能夠得到擴大值(240000),而在模塊內?

編輯:Print[Evaluate[y]];不會在這種情況下

+0

請參閱下面的答案,但我建議您使用新的[Mathematica StackExchange](http://mathematica.stackexchange.com/)MMA相關問題的論壇 – magma

回答

1

應鍵入工作,要麼「:=」,而不是「=」,讓你的函數每次正確重新計算。

這工作正常

VOUT [VIN_]:=模塊[{X = VIN,Y}, Y = 200000 *(1.2 - X); 打印[y]; 和 ]; 打印[vout [0]];

+0

謝謝,明白了!我需要更仔細地閱讀http://reference.wolfram.com/mathematica/ref/SetDelayed.html。太男人操作員... – spotco

+0

我建議你閱讀pdf中的Mathematica書。您可以在傳統文檔下的wolfram網站中找到它。最新版本是5.1,但沒關係。你將學習所有的基礎知識,其餘的你可以在線學習。在線文檔中還有一本「書」。 – magma