2012-04-01 183 views
1

我在MATLAB(主程序和調用其他函數)中運行我的主函數時出現問題。試圖運行它會給我錯誤「???未定義的函數或變量'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 2012-04-02 06:10:11

2

其實行

global HUBS, max_x_address, max_y_address; 

不聲明三個全局變量。逗號是Matlab中的語句或表達式分隔符,因爲是EOL或分號。所以Matlab讀取上述

global HUBS 
max_x_address 
max_y_address; 

所以它所做的是聲明HUBS爲全球。然後它試圖檢索max_x_address的值並打印它。最後它會檢索max_y_address的值並將其扔掉。

正確的語法來聲明超過一個全局變量是用空格分隔它們(見文檔):

全球花鼓max_x_address max_y_address