[Scilab-users] Avoiding a loop

Frieder Nikolaisen Frieder.Nikolaisen at student.hs-rm.de
Thu May 11 09:17:42 CEST 2017


Thanks for all the answers.


I feared that there is no way around a loop. During the process batt 
(Battery) is charged and discharged. In my example, it is only 
discharged. I will code the entire problem with a loop, maybe somebody 
knows something to speed up the process with the full problem. (Tim: I 
am not a programming pro, a C-function might not be a solution. )
Why do I try avoidng a loop? I do have txt-document with 50 000 to 100 
000 lines about a (hybrid-)locomotive shunting process. I do need to 
optimize the energy managment. Because I am not mathemtic student, I 
have to solve the problem empirical (try and error). The programm has to 
run a few hundred times. With a matrix thats no problem, but with 
matrixes only, I can only calculate the diesel usage without any battery 
energy storage.

Thanks for the checking my code anyway.


Am 10.05.2017 um 20:53 schrieb Amanda Osvaldo:
> What it's the equation you need to compute ?
> Perhaps I can help.
>
> I think it's possible to compute with something in this way:
> map  =  find  (P(:,2)  >  100  );
> if  batt  >  800  then
>      batt  =  batt  -  P(map,2)  *  (P(map+1,1)  -  P(map,1));
> end
> On Wed, 2017-05-10 at 17:23 +0200, Frieder Nikolaisen wrote:
>>
>> 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
>> _______________________________________________
>> users mailing list
>> users at lists.scilab.org <mailto:users at lists.scilab.org>
>> http://lists.scilab.org/mailman/listinfo/users
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users

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


More information about the users mailing list