adding vector to matrix to create tensor

Hi. I have a 10176X10176 matrix and a 10176X1 vector that I want to add to the matrix in order to create a 10176X10176X10176 tensor, without a for loop.
How should I go about that?

 Respuesta aceptada

%Sample example
y = rand(12,12);
z = rand(12,1);
%Change the dimensions of z from mxnx1 to nx1xm
z0 = permute(z,[2 3 1]);
size(z0)
ans = 1×3
1 1 12
%Perform the addition
out = y + z0;
size(out)
ans = 1×3
12 12 12

1 comentario

This is a correct answer, but it probably won't work on the original question for practical reasons. Assuming the data is real double data:
numElements = 10176^3;
bytes = 8*numElements;
tb = bytes/(1000^4)
tb = 8.4299
the result would require over 8 terabytes of contiguous memory to store.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 24 de Jul. de 2023

Comentada:

el 24 de Jul. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by