adding vector to matrix to create tensor

4 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Dyuman Joshi
Dyuman Joshi il 24 Lug 2023
%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 Commento
Steven Lord
Steven Lord il 24 Lug 2023
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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Distribution Plots in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by