0

私は MATLAB GUI の構築が初めてで、2 つの GUI 間でデータを渡す方法を学ぼうとしています。私の質問は、サブ GUI からメイン GUI の関数を呼び出す方法です。

例えば:

メイン GUI では、2 つのテキスト ボックスからそれぞれのコールバックから値を取得しています。

handles.A= str2double(get(handles.textbox1,'string'));  

guidata(hObject,handles)

handles.B = str2double(get(handles.textbox2,'string'));   

guidata(hObject, handles)

次に、上記に加えて、加算を行う 3 番目の関数があります。

function addition(handles)    

C= handles.A + handles.B

ただし、3 番目の機能は、次のようにボタンを押すことでサブ GUI からアクセスできます。

function pushbutton1_Callback(hObject, eventdata, handles)   

main_gui('addition');

発生しているエラーは行の入力引数が不十分ですがC = handles.A + handles.B、なぜこのエラーが発生するのかわかりません。誰でも私を助けることができますか?

4

1 に答える 1

0

addition入力引数なしで呼び出しています。GUI 間でデータを渡す 1 つの方法は、handles.ahandles.bサブ GUI に入力引数として渡し、それらを への入力引数として使用することadditionです。

サブ GUI を開く関数 ( subGUI_OpeningFCN) の上部に次の行を追加します。

handles.a = varargin{1};
handles.b = varargin{2};

サブ GUI 機能pushbutton1_Callbackを次のように変更します。

main_gui('addition', handles.a, handles.b);

2 つの入力引数を受け入れるように変更しますmain_guiaddition

addition(handles.a,handles.b)

次に、また、次のようmain_guiに呼び出します。subGUI

subGUI(handles.a,handles.b);

additionメイン GUI ではなく、別の m ファイルで定義できることに 注意してください。

于 2013-05-31T22:55:17.610 に答える