multiple matrix manipulation with different size matrices

2 visualizaciones (últimos 30 días)
Hello
I have two matrices (A and B) and am trying to combine them so that I can have the final matrix C. A small example of what I'm after is below.
A = 1 1
1 1
B = 4 3 2 6
7 8 2 1
3 2 4 5
1 4 3 2
Hence C = A(1,1)*sum[B(1,1),B(1,2),B(2,1),B(2,2)] etc
giving C = 22 11
10 14
I figure that I am going to require a loop in order to do this but I am unsure on how to proceed.
Please note that the actual matrices I have to perform this task on will be (100*100) size. I have scaled the problem down for this example.
Any help would be greatly appreciated.
Thanks
  2 comentarios
Oleg Komarov
Oleg Komarov el 19 de Abr. de 2011
Do you have the Image Processiong TB?
Jennifer
Jennifer el 19 de Abr. de 2011
Not that I am aware of.

Iniciar sesión para comentar.

Respuesta aceptada

Matt Fig
Matt Fig el 19 de Abr. de 2011
It looks like you are basically doing a 2D convolution:
C2 = conv2(B,A,'valid'); % Look at the corners...

Más respuestas (1)

Andrei Bobrov
Andrei Bobrov el 19 de Abr. de 2011
variant
[m1 n1] = size(B);
[m2 n2] = size(A);
Y = reshape(B,m1,n2,[]);
Y1 = permute(Y,[2 1 3]);
Y2 = reshape(Y1,m1,[]);
C = reshape(sum(Y2).*A(:).',m2,[]);

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by