beginner question :subject : For loops , while loops , index variable

1 view (last 30 days)
Write a MATLAB statements required to calculate y(t) from the equation
y(t)= -3*t^2 + 5 when t >= 0, y(t)= 3*t^2 + 5 when t < 0
The values of t between -9 and 9 in steps of 0.5. (Use loops and branches)
??????????????is this correct ?????????????????????????
OR DO I HAVE TO PRE-ALLOCATE TIME (t) before I START THE LOOP
my program:
t = -9:0.5:9; % initialize the control expression
for ii = 1:length(t)
if t(ii) >= 0
y = -3*t.^2 + 5;
else
y = 3*t.^2 + 5;
end
end
if true

Answers (3)

Walter Roberson
Walter Roberson on 13 Mar 2013
When you display "y" afterwards, is the number of values the same as the number of values in "t" ?

Carlos
Carlos on 13 Mar 2013
Edited: Carlos on 13 Mar 2013
This is what I would do:
for k=1:length(t)
if t(k)<=0
y4(k)=3*t(k)^2 + 5;
else
y4(k)=-3*t(k)^2 + 5;
end
end
You don't need the point after t here y = -3*t.^2 + 5;
Compare with the answer with no loops and branches
>> t2=0:0.5:9;
>> y2=-3*t2.^2 + 5;
>> t1=-9:0.5:-0.5;
>> y1=3*t1.^2 + 5;
>> y=[y1 y2];
>> isequal(y,y4)
ans =
1

Marco jacome
Marco jacome on 13 Mar 2013
Thanks Carlos and Walter , but it is still not clear to me... nonetheless, your advice helps alot. I just have to practice a lil bit

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!