2012-03-26 12 views
1

uigetfile関数を使用してXLSファイルを選択しました。私は他のcalback機能(例えば、プッシュボタン)で変数textnumberにアクセスするにはどうすればよいどのようにMATLABのグローバル変数にxlsreadのデータを入れますか?

[text,number,d] = xlsread(...) 

を:その後、私のGUIのボタンのコールバック関数open_xls_Callbackの内側から、私が使用してExcelファイルからテキストや数値を読みます?これらの変数をグローバルにして、その関数スコープの外からアクセスできるようにするにはどうすればよいですか?

答えて

0

assigninを使用すると、変数を特定のワークスペースに配置できます。 あなたの場合、の場合、ベースワークスペースを意味する場合は、assignin('base', 'variable_name_you_want', text)を使用してください。

グローバル変数が本当に必要だった場合は、関数内でglobal var_name_u_wantを宣言してからvar_name_u_want = textを割り当てます。

0

すべてのネストされた関数は、親関数で定義された変数にアクセスできます。これは、すべてのコールバック関数でデータを共有するために使用できます。ここ

を説明するための例である:

function myGUI() 
    %# this variable is accessible in both callback functions 
    x = 0; 

    %# a simple GUI to increment/show the variable x 
    figure('Position',[300 300 350 150]) 
    uicontrol('style','pushbutton', 'String','increment', ... 
     'Position',[50 50 100 30], 'Callback',@incrementCallback); 
    uicontrol('Style','pushbutton', 'String','get', ... 
     'Position',[200 50 100 30], 'Callback',@getCallback); 

    %# callback functions 
    function incrementCallback(src,evt) 
     x = x + 1; 
    end 
    function getCallback(src,evt) 
     msgbox(sprintf('x = %d',x)) 
    end 
end 

screenshot

関連する問題