If Loop for specific condition

7 vues (au cours des 30 derniers jours)
Fereizqo Sulaiman
Fereizqo Sulaiman le 27 Fév 2018
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

Réponse acceptée

KL
KL le 27 Fév 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?
  1 commentaire
Fereizqo Sulaiman
Fereizqo Sulaiman le 7 Mar 2018
No, i am trying to learn matlab by myself from a book then get stuck with this exercise. I understand, thanks for your help

Connectez-vous pour commenter.

Plus de réponses (2)

Andrei Bobrov
Andrei Bobrov le 27 Fév 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 commentaire
Jan
Jan le 7 Mar 2018
Modifié(e) : Jan le 7 Mar 2018
I have to think twice, how I can express "@(x,y)x{:}(y)" in words. :-)

Connectez-vous pour commenter.


Esha Almas
Esha Almas le 4 Mar 2020
If else by while loop

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by