Matrix Multiplication for each row

4 visualizaciones (últimos 30 días)
Ankush Kumar Mishra
Ankush Kumar Mishra el 21 de Oct. de 2021
Comentada: Ankush Kumar Mishra el 21 de Oct. de 2021
I have a matrix A = 100000*2 and matrix B which is a symmetric square matrix with number of row and columns equal to the number of columns of A.
I want to compute diag (A*B*A') but since A*B*A' is 100000*100000, matlab cannot compute it and then give diagonal of it. Any workaround?
What i am actually looking for is The first row of A multiplied by B and then multiplied by first column of A'. Now, I can perform this 100000 times to get 100000*1 matrix but that is time consuming. Any workaround will be appreciated?

Respuesta aceptada

Chunru
Chunru el 21 de Oct. de 2021
n = 5; %100000
A = randn(n, 2);
B = [4 2; 2 3];
if n<100
d1 = diag(A*B*A')
end
d1 = 5×1
4.3969 45.0577 9.4548 6.3347 1.4279
d2 = sum(A.*(A*B'), 2)
d2 = 5×1
4.3969 45.0577 9.4548 6.3347 1.4279

Más respuestas (0)

Categorías

Más información sobre Multidimensional Arrays 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