0

私は、MATLABのGUIDEを使用して、ジュリアン時間から標準のIRIG時間に前後に変換する計算機を開発しています。電卓を起動すると、一方の方向に進んでも、もう一方の方向に進んでも問題なく動作しますが、同じセッションで行ったり来たりすると、どういうわけか何かが削除されます。私は2つのボタンのみを使用していますが、これら2つのボタンのコールバックのコードは次のようになります。

% --- Executes on button press in convertjulian.
function convertjulian_Callback(hObject, eventdata, handles)
% hObject    handle to convertjulian (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
value = handles.isec;

day = floor(value/86400);
remainder = (value/86400 - day)*86400;

hour = floor(remainder/3600);
remainder = (remainder/3600 - hour)*3600;

min = floor(remainder/60);
sec = (remainder/60 - min)*60;

set(handles.jday,'String',day);
set(handles.jhour,'String',hour);
set(handles.jmin,'String',min);
set(handles.jsec,'String',sec);

他のコールバックは次のとおりです。

% --- Executes on button press in convertirig.
function convertirig_Callback(hObject, eventdata, handles)
% hObject    handle to convertirig (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
seconds=handles.jday*86400+handles.jhour*3600+handles.jmin*60+handles.jsec;
set(handles.isec,'String',sprintf('%0.3f',seconds));

そして、MATLABを実行しているときにMATLABで発生するエラーは次のとおりです。

handle.handle/setの使用中にエラーが発生しました無効または削除されたオブジェクト。

timeconversion> convertjulian_Callbackのエラー(124行目)set(handles.jday、'String'、day);

gui_mainfcnのエラー(96行目)feval(varargin {:});

時間変換のエラー(42行目)gui_mainfcn(gui_State、varargin {:});

@(hObject、eventdata)timeconversion('convertjulian_Callback'、hObject、eventdata、guidata(hObject))のエラー

uicontrolコールバックの評価中にエラーが発生しました

4

1 に答える 1

0

ハンドルを数値として扱っています。から値を取得するにはhandles.isec、次を使用できます。

value = str2double(get(handles.isec, 'String'));

すべての「j」ハンドルは類似しています。

于 2013-01-11T20:47:33.730 に答える