plot doesn`t work (probably unrelated to the code )
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ziming Huang
le 16 Août 2018
Commenté : Star Strider
le 20 Août 2018
%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 commentaires
Réponse acceptée
Star Strider
le 16 Août 2018
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')
2 commentaires
Voir également
Catégories
En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!