sweep of tensor products

27 次查看(过去 30 天)
Olivier BENOIT
Olivier BENOIT 2024-11-5,12:16
评论: Olivier BENOIT 2024-11-6,8:40
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

采纳的回答

Bruno Luong
Bruno Luong 2024-11-5,12:27
编辑:Bruno Luong 2024-11-5,12:37
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 个评论
Matt J
Matt J 2024-11-6,0:51
Strictly speaking you do not compute a tensor product.
It is essentially, a Khatri-Rao product.
Olivier BENOIT
Olivier BENOIT 2024-11-6,8:40
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Genomics and Next Generation Sequencing 的更多信息

标签

产品


版本

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by