GUIDで書かれた大きなプログラムでタイマーをテストしていましたが、私はこれらの奇妙な結果に出くわしました。findobjがタイマーコールバックで失敗しました
function checkfordone_openningFcn(hObject, eventdata, handles, varargin)
…
handles.t = timer(‘TimerFcn’,@IsDataReady,’ExecutionMode’,’fixedRate’,’Period,4);
start(handles.t)
function IsDataReady(timerObject, eventdata)
fHandles = findobj(‘type’,’figure’,’tag’,’figure1’)
end
タイマー関数のコールバックIsDataReadyは、初めて呼び出されたときにfigure1の有効なハンドルを返します。その後、nullを返すだけです。