I try to run a for loop to plot the function y(t) for 0.1<=t<=0.9 for 5 diffrent t. Can you help me with my code?

5 vues (au cours des 30 derniers jours)
x=-10:0.01:10 ;
y=zeros(5,length(x))
for t=1:2:9
y(t)=((exp((-t*0.1).*x))./(sqrt(1-(t*0.1)^2))).*sin(x.*sqrt(1-(t*0.1)^2)+acos(t*0.1))
end

Réponse acceptée

Les Beckham
Les Beckham le 31 Mar 2022
Modifié(e) : Les Beckham le 31 Mar 2022
You were pretty close. I had to change the loop to loop over the elements of t and save y one row at a time using y(i,:) using one element of t using t(i).
Hopefully this is what you wanted.
x = -10:0.01:10;
t = 1:2:9;
y = zeros(numel(t), numel(x));
leg_strings = {};
for i = 1:numel(t)
y(i,:) = ((exp((-t(i)*0.1).*x)) ./ (sqrt(1-(t(i)*0.1)^2))) .* sin(x.*sqrt(1-(t(i)*0.1)^2) + acos(t(i)*0.1));
leg_strings(i) = {sprintf('t = %d', t(i))};
end
plot(x,y)
grid on
legend(leg_strings)
Note that you could also define t = 0.1:0.2:0.9 and remove the *0.1 from the equation for y.
  3 commentaires
ON
ON le 31 Mar 2022
yes, I just did that and it works perfectly.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics 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!

Translated by