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

답변 (3개)

Cris LaPierre
Cris LaPierre 2021년 3월 21일

0 개 추천

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 2021년 3월 21일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Convert Image Type에 대해 자세히 알아보기

제품

릴리스

R2019b

태그

질문:

2021년 3월 21일

답변:

2021년 3월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by