2011-07-15 68 views
2

我正在將一些內部數據可視化/分析工具從Matlab移動到IPython/Numpy/Scipy/PyLab。我提到的工具是Matlab GUI,它只進行簡單的分析。偶爾,我想進行更復雜的分析,在這種情況下,我在執行Matlab的「assignin('base',...」)的圖形用戶界面中按下一個按鈕,這會將數據放入頂層會話,以便我可以進一步操作Numpy/IPython等價於Matlab的assignin

這不是我唯一的用法「assignin」。另一個例子,我也用它來從一個腳本內部的函數中將數據導出到主Matlab會話中。 )

所以我問:在交互式IPython/PyLab環境中工作時,是否有與Matlab的assignin等價的東西?如果沒有直接的等價物,我該怎麼去關於從IPython啓動的腳本中獲取數據返回主會話?

+1

在回答最後一個問題時,您可以隨時序列化數據並寫入磁盤,然後在主會話中再次加載它:http://wiki.python.org/moin/UsingPickle – Amro

+0

@Amro謝謝。我曾考慮過這個問題,但是有沒有更簡化的方法來做我想問的問題? – benpro

回答

2

查看全局命名空間。實際上,我會使用類似以下代碼的內容,具體取決於您的變量是否具有靜態名稱或名稱是否可以動態更改。

def staticAssignInBase(): 
    global x 
    x = 'someValue' 

def dynamicAssignInBase(): 
    g = globals() 
    g['someVarName'] = 'someValue' 

但請注意,這可能不適用於包裝邊界!