0

この質問ですでに多かれ少なかれ尋ねられたように:https ://stackoverflow.com/questions/14397729/working-with-multiple-guis-in-matlab

出力パラメータを取得して、GUIが終了するのを待ちたいです。

今はを使用waitforしていますが、出力は常に単一のハンドルのみです

handle = uiConfigureCalibration('uiMain', handles.figure1);
waitfor(handle);
display(handle);

ただし、の出力関数はuiConfigureCalibrationいくつかのパラメータを渡します。

function varargout = uiConfigureCalibration_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;
if isfieldRecursive(handles, 'handles.files.calibration')
   varargout{2} = handles.files.calibration;
   varargout{3} = handles.calibration;
end 

呼び出し元の関数でこれらのパラメーターを取得する機会はありますか?

4

1 に答える 1

1

あなたはしなければならないでしょう

[output,FilesCalibration,Calibration] = uiConfigureCalibration('uiMain', handles.figure1);

追加の出力を取得するには、関数呼び出しで 1 つの出力のみを要求しているため、常に 1 つの出力を取得します。ただし、単一のパラメーターを出力すると、これは失敗します。

出力の数は可変なので、すべての出力を含む構造体を返す方が良いと思います:

function output = uiConfigureCalibration_OutputFcn(hObject, eventdata, handles) 
output.output = handles.output;
if isfieldRecursive(handles, 'handles.files.calibration')
   output.files.calibration = handles.files.calibration;
   output.calibration = handles.calibration;
end

関数は基本的に、ハンドルの構造に応じて 1 つまたは 3 つのフィールドを含む、ハンドル構造のサブセットを返します。

于 2013-01-18T15:04:17.210 に答える