If Loop for specific condition
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Fereizqo Sulaiman
am 27 Feb. 2018
Beantwortet: Esha Almas
am 4 Mär. 2020
Hello, i've written the following script in MATLAB:
i = 1:0.5:50;
for t = [-5:0.5:50]
if t<10
v = 11.*t.^2 - 5.*t;
elseif t<20.5 && t>10
v = 1100-5.*t;
elseif t<30.5 && t>20
v = 50.*t + 2.*(t-20).^2;
elseif t>30
v = 1520.*exp(-0.2.*(t-30));
else
v = 0;
end
end
fprintf('value of v: %d\n', v);
I want to get value of v in every t condition First condition, t < 10 Second condition, 10<t<20 Third condition, 20<t<30 Forth condition, t>30 and if none of them, the value of v is 0 Thanks for your help
0 Kommentare
Akzeptierte Antwort
KL
am 27 Feb. 2018
is it a homework? should you really use for loop and if-else statements?
I suppose yes. In that case, you need to store your calculated v after every iteraton. For example,
t = -5:0.5:50; %here you define t
and you may want to store v for every t, so pre-allocate v for the same size now,
v = zeros(size(t));
now, v is full of zeros. Fill it up inside your loop. It's always wise to use a indexing variable as for-loop counter,
for indx=1:numel(t)
if(t(indx) <= condition)
v(indx) = some equation
elseif ...
...
end
end
get the idea?
Weitere Antworten (2)
Andrei Bobrov
am 27 Feb. 2018
t = -5:0.5:50;
tt = [-inf,10,20,30,inf];
f = {@(t)11*t.^2 - 5*t;
@(t)1100-5*t;
@(t)50*t + 2*(t-20).^2;
@(t)1520.*exp(-.2*(t-30))};
ii = discretize(t,tt);
v = arrayfun(@(x,y)x{:}(y),f(ii),t(:));
1 Kommentar
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!