[Scilab-users] For loop - maximum size
Tingsten
remi.mercier at imelavi.fr
Tue Nov 6 18:43:54 CET 2012
First, I have just realized that my first post was wrong (cause the final
matrix is not the same). This is better :
1)timer();A=[];for i=1:100000,A=[A;i];,end;timer()
ans =
16.489306
2)timer();B=[];for j=1:10,A=[];for
i=1:10000,A=[A;i];,end;B=[B;A+(j-1)*10000];,end;timer()
ans =
1.0452067
3)timer();B=[];for j=1:100,A=[];for
i=1:1000,A=[A;i];,end;B=[B;A+(j-1)*1000];,end;timer()
ans =
0.4368028
So same conclusion!
In this case, splitting the for loop does not work well....
-->timer();A=zeros(1,100000);for i=1:100000,A(i)=i;end;timer()
ans =
0.4368028
-->timer();B=[];for j=1:100,A=zeros(1,1000);for i=1:1000,A(i)=i;end;,B=[B
A+(j-1)*1000];,end;timer()
ans =
0.4212027
However this loop is an example to illustrate. In my case here are the kind
of loop I use
1)A=mopen('myfile.txt');
X=[];Y=[];Z=[];
winH=waitbar('Coffee break');
for i=1:1000000,
B=mgetl(-1,A);
[n,x,y,z]=msscanf(1,B,'%*s %*d:%*d:%*f,%d,%d,%d');
X=[X;x];Y=[Y;y];Z=[Z;z];
waitbar(j/1000000,winH);
,end;
=>30minutes (I guess cause it's so long that I stopped the loop)
2)A=mopen('myfile.txt');
X=[];Y=[];Z=[];
winH=waitbar('Coffee break');
for j=1:100,
X2=[];Y2=[];Z2=[];
for i=1:10000,
B=mgetl(-1,A);
[n,x,y,z]=msscanf(1,B,'%*s
%*d:%*d:%*f,%d,%d,%d');
X2=[X2;x];Y2=[Y2;y];
,end;
Z2=[Z2;z];X=[X;X2];Y=[Y;Y2];Z=[Z;Z2];
waitbar(j/100,winH);
,end;
=>1 minutes
--
View this message in context: http://mailinglists.scilab.org/For-loop-maximum-size-tp4025172p4025174.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at Nabble.com.
More information about the users
mailing list