[Scilab-users] Avoiding a loop

Amanda Osvaldo lambdasoftware at yahoo.es
Wed May 10 20:53:11 CEST 2017


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
> http://lists.scilab.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20170510/b042f0c0/attachment.htm>


More information about the users mailing list