[Scilab-users] vectorization

Samuel Gougeon sgougeon at free.fr
Tue Nov 13 18:25:30 CET 2012


Le 13/11/2012 08:47, Paul Carrico a écrit :
> .../...
>
> Epsilon= 10^(-8) *[
>
> 4.441D-080. 0. 0. 0. 0. ;
>
> -1022.-6278. 6914. 210.6 783100. -33910. ;
>
> -2316.-24190. 25930. 894.6 1545000. -67320. ;
>
> -3608.-52660. 55610. 2004. 2284000. -99750. ;
>
> -4895.-90810. 94970. 3508. 3002000. -131300. ;
>
> -6171.-137700. 143100. 5365. 3699000. -161900. ;
>
> -7429.-192400. 199000. 7533. 4373000. -191600. ;
>
> -8675.-254200. 262000. 9997. 5027000. -220400. ;
>
> -8675.-254200. 262000. 9997. 5027000. -220400.
>
> ]
>
> [p,c]= size(Epsilon);
>
> /// number of time steps/
>
> step_= 2; ////
>
> nb_loops= 0;
>
> _tic_()
>
> fori = 1 : p
>
> for theta = 0 : step_ : 180
>
> for fi = 0 : step_ : 180
>
> Epsilon_matrix= _fct_vector2matrix_(Epsilon(i,:));
>
> Epsilon_prime_matrix = _fct_transformation_M_(Epsilon_matrix,theta,fi);
>
> Epsilon_prime(i,:)= _fct_matrix2vector_(Epsilon_prime_matrix);
>
> nb_loops = nb_loops + 1;
>
> end
>
> end
>
> end
>
Since Epsilon_matrix does not depend neither on theta nor on fi, it can be
set only once when opening the for { i}  loop:

fori = 1 : p

Epsilon_matrix= _fct_vector2matrix_(Epsilon(i,:));

for theta = 0 : step_ : 180

for fi = 0 : step_ : 180

Epsilon_prime_matrix = _fct_transformation_M_(Epsilon_matrix,theta,fi);

Epsilon_prime(i,:)= _fct_matrix2vector_(Epsilon_prime_matrix);

nb_loops = nb_loops + 1;

end

end

end



Regards
Samuel

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


More information about the users mailing list