0

Matlab ワークスペースから「Sum」という構造体を保存しようとしています。struct(1x1) は関数内で作成されます。私は小さなスクリプトを書きました:

    SumCheck = exist('Sum')
    if SumCheck == 1;
        save('SummaryTest','Sum')
    end

これは、ワークスペースで実行すると機能します。ファイル「SummaryTest」が作業ディレクトリに作成されます。GUIスクリプトでこれを実行しようとすると、構造体「Sum」がワークスペースに表示されますが、テストファイルは保存されず、エラーメッセージも表示されません....この構造体をファイル?アドバイスをよろしくお願いします。

4

2 に答える 2

2

おそらく evalin() を使用する必要があります

GUI が実行しているコールバックのスコープには変数がありませんが、ベース ワークスペースで SummaryTest 構造を明示的に作成したか、GUI の外部で手動で作成したようです。

evalin() を使用すると、「eval」が実行される場所を指定できます...たとえば、次のことができます

evalin('base', 'save(''SummaryTest'', ''Sum''')

私の構文は少しさびているので、evalin のドキュメントを見てください。「ベース」はベース ワークスペースを指すことに注意してください

HTH

于 2013-07-24T11:37:38.840 に答える
1

GUI で実行する場合、コードはおそらくSumベース ワークスペースではなく、GUI コールバック関数ワークスペースでチェックします。見つからない (Sumベース ワークスペースにいる)SumCheckためfalsesaveコマンドは実行されません。

于 2013-07-24T11:33:58.460 に答える