【问题标题】:Numpy/IPython equivalent to Matlab's assigninNumpy/IPython 等价于 Matlab 的分配
【发布时间】:2011-07-15 15:23:57
【问题描述】:

我正在将我们的一些内部数据可视化/分析工具从 Matlab 转移到 IPython/Numpy/Scipy/PyLab。我提到的工具是 Matlab GUI,它只做简单的分析。有时,我想做更复杂的分析,在这种情况下,我在 GUI 中按下一个按钮,执行 Matlab 的“assignin('base',...”。这会将数据放入顶级会话中,我可以在其中进行进一步的操作就可以了。

这不是我对“assignin”的唯一用例。作为另一个示例,我还使用它从某个脚本深处的函数导出数据以供分析到主 Matlab 会话。 (这只是一个临时/调试技巧,而不是常规练习。)

所以我问:在交互式 IPython/PyLab 环境中工作时,是否有与 Matlab 的 assignin 等效的方法?如果没有直接的等价物,我该如何从 IPython 启动的脚本中将数据返回到主会话中?

【问题讨论】:

  • 在回答您的最后一个问题时,您可以随时序列化数据并写入磁盘,然后在主会话中再次加载:wiki.python.org/moin/UsingPickle
  • @Amro 谢谢。我已经想到了这一点,但是有没有更简化的方法来完成我的要求?

标签: python matlab numpy ipython matplotlib


【解决方案1】:

看看全局命名空间。实际上,我会使用类似以下代码的内容,具体取决于您的变量是静态名称还是名称可以动态更改。

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

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

但请注意,这可能无法跨越包边界!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 2012-10-18
    相关资源
    最近更新 更多