1

私はMatlabの世界の初心者であり、この強力なソフトウェアを使用して最初のシミュレーションを作成しようとしています。アプリケーションのすべてのパラメーターを一意のmファイルに入れます。どこかですべての変数をグローバルとして初期化してどこでも使用できるようにする必要がありますが、その後、これらの変数は、他のすべてのmファイルで自動的に使用できるようになります。パラメータファイルの同じフォルダにあり、単にそれらを呼び出しますか?

4

1 に答える 1

1

関数のスコープ外にある変数を共有したい場合は、次のように関数を宣言できます。

function globalFun
global var1 var2
var1 = 5; 
var2 = 6;

. . . そして、このようなスクリプトから呼び出します。. .

global var1 var2
var1 = 0; 
var2 = 0;
globalFun

関数が出力を返さない場合でも、値がワークスペースで更新されることがわかります。

ただし、これを行うと、デバッグ地獄の可能性が開かれます。関数間で多くの変数を渡す必要があり、大量の引数リストを使用して関数を記述したくない場合は、代わりに構造体を使用することを検討してください。に置き換えgloabalFunます。.

function s = structFun(s)    
s.var1 = 5; 
s.var2 = 6;

そして、そのように呼び出します。.

s.var1 = 0; 
s.var2 = 0;
s = structFun(s);

このようにして、どの関数が何を変更しているかを常に一目で確認できます。

于 2012-09-13T22:46:41.840 に答える