For loop only outputting the final value.

function y = q2(t)
if 0 > t;
y = t*sin(2*t)+sin(40+t);
elseif 0 <= t & t <= 100;
y = t*(t-1.6*sin(25*t));
elseif 100 < t;
y = 2*cos(t)+sin(2*t)*cos(40*t)+t;
end
end
t=linspace(0,3*pi,100)
for t=linspace(0,3*pi,100);
y = q2(t);
valueOfA(t) = y;
end

Respuestas (3)

Cris LaPierre
Cris LaPierre el 21 de Mzo. de 2021

0 votos

This is because you have not formatted your for loop counter correcty, and because your code replaces the value of y in each loop.
See the examples in the documentation page for capturing all the values. You might also find Ch 13 of MATLAB Onramp helpful.
Rafael Hernandez-Walls
Rafael Hernandez-Walls el 21 de Mzo. de 2021
Try using something like this:
t=linspace(0,3*pi,100)
t=linspace(0,3*pi,100);
for k=1:length(t)
y = q2(t(k));
valueOfA(k) = y;
end
valueOfA

Categorías

Más información sobre Convert Image Type en Centro de ayuda y File Exchange.

Productos

Versión

R2019b

Etiquetas

Preguntada:

el 21 de Mzo. de 2021

Respondida:

el 21 de Mzo. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by