How to multiply 4D array.
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Triveni
el 17 de Dic. de 2015
i want to multiply
L(:,:,k,:).*M(:,:,k,:);
i want to multiply without loop.
0 comentarios
Respuesta aceptada
Christine Tobler
el 17 de Dic. de 2015
Editada: Christine Tobler
el 17 de Dic. de 2015
You could try downloading the tensor toolbox by Kolda and Bader, where this is provided as a command ttt(L, M, 3, 3). Alternatively, you can use the following code:
permL = permute(L, [3 1 2 4]);
permM = permute(M, [3 1 2 4]);
szL = size(L);
szM = size(M);
result = permL(:, :)'*permM(:, :);
result = reshape(result, [szL([1 2 4]), szM([1 2 4])]);
This returns a 6-dimensional array result, such that
result(i1, i2, i3, j1, j2, j3)
is the same as
a = 0; for k=1:size(L, 3), a = a + L(i1, i2, k, i3)*M(j1, j2, k, j3); end; a
Is this what you wanted to compute?
2 comentarios
Christine Tobler
el 18 de Dic. de 2015
I'm not sure what you want L and M to be, can you explain in more detail?
Más respuestas (1)
Walter Roberson
el 17 de Dic. de 2015
L.*M
Somehow I suspect that your question missed some information...
0 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!