2011-07-15 8 views
2

私は内部データの可視化/解析ツールをMatlabからIPython/Numpy/Scipy/PyLabに移行しています。私が参照するツールは、単純な種類の解析だけを行うMatlabのGUIです。時々、私はより洗練された分析を行いたいのですが、GUIのボタンを押してMatlabの "assignin( 'base'、...)を実行します。これにより、データを最上位レベルのセッションに置いて、Matlabのassigninに相当するNumpy/IPython

これは、「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' 

ただし、これはパッケージの境界を越えて機能しない可能性があります。

関連する問題