Info
此问题已关闭。 请重新打开它进行编辑或回答。
The result can't shown as a graph in Gui Matlab
1 次查看(过去 30 天)
显示 更早的评论
I have a trouble to get plot of my task. there is contain of 3 differential equation. i used GUI 'edit' to manage parameter a,and b
function model_openingFcn(hObject,eventdata,handles,umpan)
global a1; global a2; global b1; global b2;
a1=2;a2=4;b1=3;b2=5;
handles.typeFlag=1
set(handles.a_variations,'Value',1);
set(handles.b_2,'enable','off');
set(handles.a_1,'String',num2str(a1));
set(handles.a_2,'String',num2str(a2));
set(handles.b_1,'String',num2str(a1));
guidata(hObject,handles)
%the diff eq to parameter a1
function dydt=myfunc1(t,yp,a1,b1)
dydt=zeros(3,1)
dydt(1)=3*yp(1)*a1+yp(4)*b1;
dydt(2)=2*yp(3)*b1;
dydt(3)=yp(4)*a1;
%the diff eq to parameter a1
function dydt=myfunc2(t,yq,a2,b1)
dydt=zeros(3,1)
dydt(1)=3*yq(1)*a2+yq(4)*b1;
dydt(2)=2*yq(3)*b1;
dydt(3)=yq(4)*a2;
%the diff eq to parameter a1
function dydt=myfunc3(t,yr,a1,b2)
dydt=zeros(3,1)
dydt(1)=3*yr(1)*a1+y(4)*b2;
dydt(2)=2*yr(3)*b2;
dydt(3)=yr(4)*a1;
%function callback for pushbutton
guidata(hObject,handles);
if handles.Flag=1
set(handles.a_variations,'Value',1);
set(handles.b_2,'enable','off');
set(handles.a_1,'String',num2str(a1));
set(handles.a_2,'String',num2str(a2));
set(handles.b_1,'String',num2str(b1));
else hanldes.Flag=2
set(handles.b_variations,'Value',1);
set(handles.a_2,'enable','off');
set(handles.a_1,'String',num2str(a1));
set(handles.b_2,'String',num2str(b2));
set(handles.b_1,'String',num2str(b1));
end
dynamicmodel(handles);
%>>>>>>>>>>>> make function to dynamicmodel(handles)
function dynamicmodel(handles);
switch handles.typeFlag
case 1
opts=odeset('Refine',10);
[t,yp]=ode45(@myfunc1,[0 10],[1 3 4 5], opts,a1,b1);
[t,yq]=ode45(@myfunc2,[0 10],[1 3 4 5], opts,a2,b1);
plot(handles.axes1,t,yp(:,1),'b',t,yq(:,1),'m');
title('effect variation parameter a to y1')
xlabel('t')
ylabel('y')
case 2
opts=odeset('Refine',10);
[t,yp]=ode45(@myfunc1,[0 10],[1 3 4 5], opts,a1,b1);
[t,yq]=ode45(@myfunc3,[0 10],[1 3 4 5], opts,a1,b2);
plot(handles.axes1,t,yp(:,1),'b',t,yq(:,1),'m');
title('effect variation parameter b to y1')
xlabel('t')
ylabel('y')
error result showed the graphic, in command window ??? Error using ==> plot Vectors must be the same lengths.
Error in ==> model>dynamicmodel
plot(handles.axes1,t,yp(:,1),'b',t,yq(:,1),'m');
Error in ==> model>btn_calculate_Callback at 158
modeldinamika(handles);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> model at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)model('btn_calculate_Callback ',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
So what can i do to solve this error?
0 个评论
回答(1 个)
Image Analyst
2013-5-15
Put these lines just before the call to plot():
whos t
whos yp
whos yq
Evidently either yp or yq is not the same length as t.
0 个评论
此问题已关闭。
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!