[Scilab-users] Avoiding a loop

Frieder Nikolaisen Frieder.Nikolaisen at student.hs-rm.de
Wed May 10 17:25:36 CEST 2017


 

There was a piece of code missing: 

P = [
1, 0; 
2, 50; 
5,
110;
10, 80;
11, 200
15, 0];

batt = 1000;
gen = 0;

n = 1
for n=1:5


if P(n,2) > 100 then
 if batt > 800 then batt = batt - P(n,2) *
(P(n+1,1) - P(n,1))
 else
 gen = gen + P(n,2) * (P(n+1,1) - P(n,1))

end

 else
 batt = batt - P(n,2) * (P(n+1,1) - P(n,1))
 end
disp('n ' +
string(n))
disp('batt ' + string(batt))
disp('gen ' +
string(gen))
end

Am 2017-05-10 17:23, schrieb Frieder Nikolaisen: 

>
Hello, 
> 
> I did write an example code, but I do not like the time
consuming way I solved the problem. With 50 000 lines in the matrix, it
wouldn't be fun. 
> 
> How can I avoid using the for-loop? 
> 
> 10,
80;
> 11, 200
> 15, 0];
> 
> batt = 1000;
> gen = 0;
> 
> n = 1
> for
n=1:5
> 
> if P(n,2) > 100 then
> if batt > 800 then batt = batt -
P(n,2) * (P(n+1,1) - P(n,1))
> else
> gen = gen + P(n,2) * (P(n+1,1) -
P(n,1))
> end
> 
> else
> batt = batt - P(n,2) * (P(n+1,1) - P(n,1))
>
end
> disp('n ' + string(n))
> disp('batt ' + string(batt))
> disp('gen
' + string(gen))
> end
> 
> Thanks alot!
> 
> Best regards
> Frieder

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20170510/a3f4bf7d/attachment.htm>


More information about the users mailing list