2012-04-01 9 views
1

MATLAB(メインプログラムと他の関数を呼び出す)でmain関数を実行する際に問題があります。実行しようとするとエラー "???未定義の関数または変数 'max_x_address'"が表示されます。しかし、あなたが以下に見るように、それはグローバルとして宣言されています。これは本当に私を悩ますので、どんな助けもありがとう。 (私は私のpathdef.mファイルを変更する必要がないということは、MATLABのトラブルシューティングが言うことですが、私はステップのいくつかを、次に、それは助けにはならなかった?。)
次は、プログラムのスケルトンです:MATLABで未定義の関数または変数

function Adaptive_Information 
global HUBS, max_x_address, max_y_address; 
. 
. 
max_x_address = 10; 
. 
. 
end 

答えて

4

これを使用するすべてのコンテキストでグローバルに宣言する必要があります。これは、追加された:

global max_x_address 

max_x_addressを使用する各関数の先頭に加え、ベースワークスペース(必要な場合)へ。

+1

おかげで、私はそれを修正することができましたが。解決策は、同じ行に複数の変数を宣言しないようにすることが判明しました。 (MATLABの奇妙な動作) – Joebevo

2

実際にライン

global HUBS, max_x_address, max_y_address; 

は、3つのグローバル変数を宣言していません。カンマは、MATLABの文または式の区切り文字で、EOLまたはセミコロンです。だから、Matlabのは、だから何それがないことはグローバルとしてHUBSを宣言することです

global HUBS 
max_x_address 
max_y_address; 

上記のように読み取ります。次に、max_x_addressの値を取り出して印刷しようとします。最後にmax_y_addressの値を取得し、それを放棄します。

つ以上のグローバル変数を宣言するための正しい構文は、スペースでそれらを区切るためである(また、ドキュメントを参照してください):

グローバルHUBS max_x_address max_y_address

関連する問題