非コールバック関数内のハンドル構造体のデータ メンバーにアクセスしようとすると、「存在しないフィールドへの参照 ...」というエラーが表示されます。または、matlab gui プログラミングのコールバック関数内でのみハンドル構造を使用できる状況ですか?
1 に答える
0
ランダム関数内でハンドルを使用する場合は、次を使用する必要があります。
handles = guidata(hObject);
これにより、ハンドル構造を「ロード」できます。ここhOject
で、 はハンドルです。この変数を、引数を使用して記述している関数に渡すようにしてください。
function [var_out] = my_function(var_in,hObject,handles)
handles=guidata(hObject);
%some code
guidata(hObject,handles);
end;
最後の行は、ハンドル構造で行ったすべてを「保存」したい場合に便利です。このようにして、非コールバック関数でハンドル構造を使用できるようになります。
function my_callback(hObject,eventdata,handles)
%some code
[var_out] = my_function(var_in,hObject,handles);
end
コールバックを呼び出すと、これらすべてが機能my_function
します。
于 2013-07-10T07:55:27.843 に答える