[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