2011-07-15 50 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' 

但请注意,这可能不适用于包装边界!