sweep of tensor products

5 visualizaciones (últimos 30 días)
Olivier
Olivier el 5 de Nov. de 2024
Comentada: Olivier el 6 de Nov. de 2024
Hello,
I have two matrces A of dimension c x n and B of dimension c x l with c >> n and c >> l
I would like to calculate the tensor C of dimesion c x (n x l) wht C_i,j,k = A_i_j * B_i_k
Is there a way to imrpove the following code ?
Thank you in advance,
c = 100;
n = 5;
l = 10;
A = rand(c, n);
B = rand(c, l);
C = nan([ c n l] );
for ii = 1:c
C(ii,:,:) = tensorprod(A(ii,:),B(ii,:));
end

Respuesta aceptada

Bruno Luong
Bruno Luong el 5 de Nov. de 2024
Editada: Bruno Luong el 5 de Nov. de 2024
Strictly speaking you do not compute a tensor product.
c = 100;
n = 5;
l = 10;
A = rand(c, n);
B = rand(c, l);
C = A .* reshape(B, c, 1, l);
size(C)
ans = 1×3
100 5 10
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
  3 comentarios
Matt J
Matt J el 6 de Nov. de 2024
Strictly speaking you do not compute a tensor product.
It is essentially, a Khatri-Rao product.
Olivier
Olivier el 6 de Nov. de 2024
Actually, my original intent is to calculate this (Einstein notation)
C_j,k,l = A_i,j * B_i,k * C_i,l
I calculated first B_i,k * C_i,l and then proceeded to a tensor product.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Productos


Versión

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by