[SciPy-user] filling array without loop...
fred
fredmfp at gmail.com
Mon Apr 23 09:06:40 EDT 2007
Anne Archibald a écrit :
> On 22/04/07, fred <fredmfp at gmail.com> wrote:
>
>
>> Forget that is a convolution (because in fact, it is really not),
>> simply a scalar product (inner product says scipy) in each cells of an
>> array, as I wrote in my example.
>>
>> Does it changes something ?
>>
>
> Uh, maybe I'm confused -
Ok, so let me explain a little more...
I have two 2D matrices, say A et B, with same dims = 571x876.
B is to be computed, A is known.
Each cell of the matrix B is computed from a "scalar product" with a few
cells of the matrix A and
a "weights" vector W:
B[i,j] = \sum_0^8 w_n a_n
where
- W = [w_n] is a 1D vector (computed from solve(a,b)) with dim = 9
- a_n = A[i,j]
a_n are selected from a submatrix of A (much smaller than A), say A':
a_2 -- a_5 -- a_8
| | |
A' = a_1 -- a_4 -- a_7
| | |
a_0 -- a_3 -- a_6
My idea is to write B[i,j] as a scalar product between W and A'
flattened to a 1D vector:
B[i,j] = dot (W,A')
(ok, inner() method was unadapted)
The problem, from my own opinion, is once again, the two (three in
general case) loops to compute each cell
of the matrix B.
So my question is : is it possible to fill the B matrix without loops ?
I hope I more clear.
Thanks in advance.
Cheers,
--
http://scipy.org/FredericPetit
More information about the SciPy-User
mailing list