# 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?

3 views (last 30 days)
ON on 31 Mar 2022
Commented: ON on 31 Mar 2022
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

Les Beckham on 31 Mar 2022
Edited: Les Beckham on 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.
ON on 31 Mar 2022
yes, I just did that and it works perfectly.