Arrays and different dimensions while saving outputs

4 Ansichten (letzte 30 Tage)
Hello to everyone,
Say we have two for loops in the following form:
for i = [1, 2..., N_i]
for j = [1, 2..., N_j]
[Some code that does stuff];
output = some_vector; % This vector is of size m*1
Array{i}(:, j) = output;
end
end
So at the end, we will arrive with:
  1. A cell array named Array with N_i elements.
  2. Each element of the Array will display a matrix of m rows and N_j columns.
Now, this works fine if and only if the output has always the same size, i.e., m*1. We can't save matrices of different row lengths. So my question is the following: is there any way to store the outputs when they are of different size (e.g., the first loop gives an output of 10*1, and the second one of 15*1, and so on...)?
Thanks in advance to everyone.

Akzeptierte Antwort

Dyuman Joshi
Dyuman Joshi am 6 Apr. 2023
Bearbeitet: Dyuman Joshi am 6 Apr. 2023
"is there any way to store the outputs when they are of different size (e.g., the first loop gives an output of 10*1, and the second one of 15*1, and so on...)?"
Yes, Cell arrays -
m=5;
%pre-allocation
y=cell(m,1);
for p=1:m
%Storing array of size dependent on the loop index
y{p,1}=p*ones(p*m,1);
end
y
y = 5×1 cell array
{ 5×1 double} {10×1 double} {15×1 double} {20×1 double} {25×1 double}
y{3}
ans = 15×1
3 3 3 3 3 3 3 3 3 3
  1 Kommentar
Julio Maximiliano Ramirez Oyanarte
Lol, this is embarassing, didn't know about the possibility of using {i, j} in arrays. Thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by