How to operate block matrices?

13 visualizaciones (últimos 30 días)
Noemi ZM
Noemi ZM el 7 de Oct. de 2022
Comentada: Noemi ZM el 7 de Oct. de 2022
I'd like to operate matrix in which each element is composed by two numbers. For instance,
If I have a matrix B=[1,2; 3,4] for instance, I'd like to have
Someone have some idea?
Thank you!

Respuesta aceptada

Rik
Rik el 7 de Oct. de 2022
Perhaps a function like pagemtimes does what you need.
You will have to store your matrix as a 3-D matrix. Even if pagemtimes is not what you want, that will make it easier to write a loop to apply the operation you do want.
  2 comentarios
Noemi ZM
Noemi ZM el 7 de Oct. de 2022
Thank you!!
Image Analyst
Image Analyst el 7 de Oct. de 2022
Can you explain exactly what was multiplied by what, and summed, to get the output matrixes?

Iniciar sesión para comentar.

Más respuestas (1)

Paul
Paul el 7 de Oct. de 2022
One can always store block matrices in cell arrays and then roll code to implement the block matrix algebra. Maybe there is a submittal on the FEX for a block matrix class?
A = {[1 2] , [3 4]; [3 5] , [4 2]};
B = {1 , 2; 3, 4};
C = blockmtimes(B,A)
C = 2×2 cell array
{[ 7 12]} {[ 11 8]} {[15 26]} {[25 20]}
function C = blockmtimes(A,B)
[m,n] = size(A);
[n,s] = size(B);
for ii = 1:m
for jj = 1:n
C{ii,jj} = zeros(size(A{ii,jj},1),size(B{ii,jj},2));
for kk = 1:n
C{ii,jj} = C{ii,jj} + A{ii,kk}*B{kk,jj};
end
end
end
end

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by