plot doesn`t work (probably unrelated to the code )
1 次查看(过去 30 天)
显示 更早的评论
%start
clear all
syms y(t) a Vp
Vp = 1;
Dy=diff(y(t));
Dt=diff(t);
t=0:0.0001:0.4999;
pulseRC1=dsolve(a*(Dy/Dt)+y==Vp,y(0)==0);
pulseRC1=eval(pulseRC1);
plot(t,pulseRC1);
hold on
t= 0.5000:0.0001:1;
pulseRC2=dsolve((Dy/Dt)*0.1+y==0,y(0.5)==Vp);
pulseRC2=eval(pulseRC2);
plot(t,pulseRC2);
hold off
pulseRc=[pulseRC1,pulseRC2];
xlabel('t')
ylabel('pulseRC')
}
%end
These are the matlab codes I have been working on.
I typed this set of codes by hand and when I run it, matlab only returns a matrix of numeric values in command window. On the other hand, the other set of code which is exactly the same but typed on a different computer runs perfectly well on my computer.//
So far I have tried to reinstall the matlab and updated to the latest version. The problem stay the same.//
What is strange to me is that the fact if I copy the working code to the current script, instead of returning a plot graph, it only return a set of numeric answers.
2 个评论
采纳的回答
Star Strider
2018-8-16
For ‘pulseRC1’, you either need to define ‘a’, or give it a range and use the fsurf (link) function. For ‘pulseRC2’, you need to use fplot (link). I used fplot for both plots here. You also do not need eval. The Toolbox does all this for you.
Try this:
syms y(t) a Vp
Vp = sym(1);
Dy=diff(y(t));
Dt=diff(t);
% t=0:0.0001:0.4999;
a = sym(42); % Supply Correct Value
pulseRC1=dsolve(a*(Dy/Dt)+y==Vp,y(0)==0)
fplot(pulseRC1, [0 0.5]);
hold on
% t= 0.5000:0.0001:1;
pulseRC2=dsolve((Dy/Dt)*0.1+y==0,y(0.5)==Vp);
fplot(t,pulseRC2, [0.5 1]);
hold off
pulseRc=[pulseRC1,pulseRC2];
xlabel('t')
ylabel('pulseRC')
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!