📄 lorenzgui.m
字号:
while get(gca,'Userdata')==1
if t1(i) >= tfinal
set(gca,'Userdata',-1);
set(handles.run_wave,'String','RUN/PLOT');
break
end
if get(handles.actual_yo,'Value')==0
set(line_plot,'Visible','Off')
set(line_time_plot,'Visible','Off')
elseif get(handles.actual_yo,'Value')==1
set(line_plot,'Visible','On')
set(line_time_plot,'Visible','On')
end
if get(handles.change_dyo,'Value')==0
set(line_plotd,'Visible','Off')
set(line_time_plotd,'Visible','Off')
elseif get(handles.change_dyo,'Value')==1
set(line_plotd,'Visible','On')
set(line_time_plotd,'Visible','On')
end
set(ball_plot,'XData',Y(i,1),'YData',Y(i,2),'ZData',Y(i,3))
set(ball_plotd,'XData',DY(i,1),'YData',DY(i,2),'ZData',DY(i,3))
set(ball_time_plot,'XData',t1(i),'YData',Yt(i))
set(ball_time_plotd,'XData',t2(i),'YData',DYt(i))
set(line_plot,'XData',Y(1:i,1),'YData',Y(1:i,2),'ZData',Y(1:i,3))
set(line_plotd,'XData',DY(1:i,1),'YData',DY(1:i,2),'ZData',DY(1:i,3))
set(line_time_plot,'XData',t1(1:i),'YData',Yt(1:i))
set(line_time_plotd,'XData',t2(1:i),'YData',DYt(1:i))
handles.line_plot = line_plot;
handles.line_plotd = line_plotd;
handles.line_time_plot = line_time_plot;
handles.line_time_plotd = line_time_plotd;
guidata(hObject, handles);
drawnow;
pause(0.01)
i = i + 1;
end
set(line_plot,'Erase','Background')
set(line_plotd,'Erase','Background')
set(line_time_plot,'Erase','Background')
set(line_time_plotd,'Erase','Background')
else
set(gca,'Userdata',-1);
set(handles.run_wave,'String','RUN/PLOT');
end
set(handles.display_plot,'HandleVisibility','Off')
set(handles.time_plot,'HandleVisibility','On')
set(handles.animate2d_disp1,'Enable','On')
set(handles.animate2d_disp2,'Enable','On')
set(handles.animate3d_disp,'Enable','On')
set(handles.actual_yo,'Enable','On')
set(handles.change_dyo,'Enable','On')
%--------------------------------------------------------------------------function animate2d_disp1_Callback(hObject, eventdata, handles)
cla;set(handles.time_plot,'HandleVisibility','Off')
set(handles.display_plot,'HandleVisibility','On')
cla;
plot_view = [0,90];
set(handles.display_plot,'View',plot_view,'Box','On');
set(handles.y1label,'Visible','On')
set(handles.y2label,'String','y2','Visible','On','Position',[0.255 0.606 0.032 0.034])
set(handles.y13dlabel,'Visible','Off')
set(handles.y23dlabel,'Visible','Off')
set(handles.animate3d_disp,'Value',0)
set(handles.animate2d_disp2,'Value',0)
%--------------------------------------------------------------------------
function animate2d_disp2_Callback(hObject, eventdata, handles)
cla;
set(handles.time_plot,'HandleVisibility','Off')
set(handles.display_plot,'HandleVisibility','On')
cla;
plot_view = [0,90];
set(handles.display_plot,'View',plot_view,'Box','On');
set(handles.y1label,'Visible','On')
set(handles.y2label,'String','y3','Visible','On','Position',[0.255 0.606 0.032 0.034])
set(handles.y13dlabel,'Visible','Off')
set(handles.y23dlabel,'Visible','Off')
set(handles.animate3d_disp,'Value',0)
set(handles.animate2d_disp1,'Value',0)
%--------------------------------------------------------------------------
function animate3d_disp_Callback(hObject, eventdata, handles)
cla;
set(handles.time_plot,'HandleVisibility','Off')
set(handles.display_plot,'HandleVisibility','On')
cla;
plot_view = [-37.5,30];
set(handles.display_plot,'View',plot_view,'Box','OFF');
set(handles.y1label,'Visible','Off')
set(handles.y2label,'String','y3','Position',[0.245 0.6 0.032 0.034])
set(handles.y13dlabel,'Visible','On')
set(handles.y23dlabel,'Visible','On')
set(handles.animate2d_disp1,'Value',0)
set(handles.animate2d_disp2,'Value',0)
%--------------------------------------------------------------------------function info_Callback(hObject, eventdata, handles)helpwin('lorenzGUI.m')
%--------------------------------------------------------------------------function close_button_Callback(hObject, eventdata, handles)close(gcbf) % to close GUI%--------------------------------------------------------------------------function b_CreateFcn(hObject, eventdata, handles)%--------------------------------------------------------------------------function b_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------function sigma_CreateFcn(hObject, eventdata, handles)%--------------------------------------------------------------------------function sigma_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------function r_CreateFcn(hObject, eventdata, handles)%--------------------------------------------------------------------------function r_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------
function t0_CreateFcn(hObject, eventdata, handles)
%--------------------------------------------------------------------------
function t0_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------
function tf_CreateFcn(hObject, eventdata, handles)
%--------------------------------------------------------------------------
function tf_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------function y0_CreateFcn(hObject, eventdata, handles)
%--------------------------------------------------------------------------function y0_Callback(hObject, eventdata, handles)
% --------------------------------------------------------------------function Gridmenu_Callback(hObject, eventdata, handles)% --------------------------------------------------------------------function grid_onoff_Callback(hObject, eventdata, handles)if strcmp(get(handles.gridopt,'checked'),'on')
set(handles.gridopt,'checked','off') % To uncheck the grid option
set(handles.display_plot,'XGrid','Off','YGrid','Off','ZGrid','Off') % Make the grid invisible
set(handles.time_plot,'XGrid','Off','YGrid','Off') % Make the grid invisible
else
set(handles.gridopt,'checked','on') % To check the grid option
set(handles.display_plot,'XGrid','On','YGrid','On','ZGrid','On') % Make the grid visible
set(handles.time_plot,'XGrid','On','YGrid','On') % Make the grid invisible
end
% --------------------------------------------------------------------
% Funtion to solve the equations
function dy = lorenzequation(t,y,b,r,s)
dy = zeros(3,1);
dy(1) = - s*y(1) + s*y(2);
dy(2) = - y(1)*y(3) + r*y(1) - y(2);
dy(3) = y(1)*y(2) - b*y(3);
% --- Executes during object creation, after setting all properties.function dyo_CreateFcn(hObject, eventdata, handles)function dyo_Callback(hObject, eventdata, handles)
% --- Executes on button press in actual_yo.function actual_yo_Callback(hObject, eventdata, handles)if get(handles.actual_yo,'Value')==0
set(handles.line_plot,'Visible','Off')
set(handles.line_time_plot,'Visible','Off')
elseif get(handles.actual_yo,'Value')==1
set(handles.line_plot,'Visible','On')
set(handles.line_time_plot,'Visible','On')
end
% --- Executes on button press in change_dyo.function change_dyo_Callback(hObject, eventdata, handles)
if get(handles.change_dyo,'Value')==0
set(handles.line_plotd,'Visible','Off')
set(handles.line_time_plotd,'Visible','Off')
elseif get(handles.change_dyo,'Value')==1
set(handles.line_plotd,'Visible','On')
set(handles.line_time_plotd,'Visible','On')
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -