[Scilab-users] is vectorization possible

paul.carrico at free.fr paul.carrico at free.fr
Tue Sep 27 10:26:53 CEST 2016


thanks to both of you

I works now

Paul

###############################
mode(0)

k = 1E6;
a = rand(k,1);

w = 2;
n = (k/w);


// same using a loop
tic()
tmp2 = zeros(n,1);
for i = 1 : n
    tmp2(i,1) = sum(a([1 + (i-1)*w : i*w],:));
end
duree_loop = toc()

// using vectorization
tic()
tmp = zeros(n,1);
tmp = sum(matrix(a,w,n),'r')';
duree_vectorization = toc()


max_error = max(abs(tmp - tmp2))

----- Mail original -----
De: "ol.bond" <oleksiy.bond at gmail.com>
À: users at lists.scilab.org
Envoyé: Mardi 27 Septembre 2016 09:59:12
Objet: Re: [Scilab-users] is vectorization possible



As just mentioned by Tim, you have to transform your vector 'a' to a matrix, and then apply summation: 


tmp = sum(matrix(a,w,n)','c'); 







2016-09-27 16:56 GMT+09:00 Tim Wescott [via Scilab / Xcos - Mailing Lists Archives] < [hidden email] > : 


OK. I think I see where I went wrong. 

There's a way to do this but it's a bit mind boggling. 

If you can let ix be a rectangular matrix of indexes, then a(ix) will be 
a column vector of indexed values. Then you can use 'matrix' to 
reassembly a(ix) into a rectangular matrix, the rows or columns of which 
you can sum up. I don't know if it'll be faster than the for loop, 
though. 

There may be an even better way of doing it, but I don't know what it 
is. 



On 2016-09-27 00:28, [hidden email] wrote: 


> Thanks Tim for the answer, nevertheless it cannot work. 
> 
> I want to make the sum of blocks of rows; here 
> - 'i' is a vector 
> - tmp is a vector of 20 rows in the current example 
> - the loop does the job, but I do not understand why the vectorization 
> fails ... is it a synthax error ? 
> 
> Paul 
> 
> pb: in my understanding, 'c' means 'column' and 'r' means row => for 
> matrix operations 
> 
> 
> 
> ----- Mail original ----- 
> De: "Tim Wescott" < [hidden email] > 
> À: [hidden email] 
> Envoyé: Mardi 27 Septembre 2016 09:17:30 
> Objet: Re: [Scilab-users] is vectorization possible 
> 
> tmp = sum(a( [1 + (i-1)*n : i*n],:), 'c') 
> 
> Or sum(..., 'r'). I can't remember which is which. One makes a row, 
> the other makes a column, but I can never remember if it's "sum all 
> columns" or "sum into a column". 
> 
> On Tue, 2016-09-27 at 09:08 +0200, [hidden email] wrote: 
>> Hi All 
>> 
>> Is the vectorization possible for the example herebellow? everything I 
>> tried failed ! 
>> 
>> Thanks for any help 
>> 
>> Paul 
>> 
>> ################################################################## 
>> mode(0) 
>> 
>> 
>> k = 100; 
>> a = rand(k,1); 
>> 
>> 
>> w = 5; 
>> n = (k/w); 
>> 
>> 
>> i = [1 : n]'; 
>> 
>> 
>> tmp = zeros(n,1); 
>> 
>> 
>> // using vectorization 
>> tmp(i,1) = sum(a( [1 + (i-1)*n : i*n],:) 
>> abort 
>> 
>> 
>> 
>> 
>> // same using a loop 
>> for i = 1 : n 
>> tmp(i,1) = sum(a( [1 + (i-1)*w : i*w],:)); 
>> end 
>> 
>> 
>> tmp 
>> _______________________________________________ 
>> users mailing list 
>> [hidden email] 
>> http://lists.scilab.org/mailman/listinfo/users 
> 
> -- 
> 
> Tim Wescott 
> www.wescottdesign.com 
> Control & Communications systems, circuit & software design. 
> Phone: <a href="tel:503.631.7815" value="+15036317815" target="_blank">503.631.7815 
> Cell: <a href="tel:503.349.8432" value="+15033498432" target="_blank">503.349.8432 
> 
> 
> _______________________________________________ 
> users mailing list 
> [hidden email] 
> http://lists.scilab.org/mailman/listinfo/users _______________________________________________ 
users mailing list 
[hidden email] 
http://lists.scilab.org/mailman/listinfo/users 







If you reply to this email, your message will be added to the discussion below: http://mailinglists.scilab.org/Scilab-users-is-vectorization-possible-tp4034639p4034644.html 


To start a new topic under Scilab users - Mailing Lists Archives, email [hidden email] 
To unsubscribe from Scilab users - Mailing Lists Archives, click here . 
NAML 


View this message in context: Re: is vectorization possible 
Sent from the Scilab users - Mailing Lists Archives mailing list archive at Nabble.com. 

_______________________________________________
users mailing list
users at lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users



More information about the users mailing list