How can I save 3d arrays in a cell array?
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Miriã Gollmann
il 16 Giu 2018
Commentato: Walter Roberson
il 16 Giu 2018
I have two 3d arrays (138x155x24) but I can't put it in only cell array. How can I do that?
Thanks for any help!
2 Commenti
James Tursa
il 16 Giu 2018
You certainly can put 3D arrays into a cell array. Please post what variables you have and also post the code you are currently trying, and what you want to get as a result.
Risposta accettata
Walter Roberson
il 16 Giu 2018
data = cell(1,2);
for K = 1 : 2
data{K} = rand(138, 155, 24);
end
and now data is a cell array with two entries, each containing a 138 x 155 x 24 array.
2 Commenti
Walter Roberson
il 16 Giu 2018
dinfo = dir('*.nc');
nfile = length(dinfo);
data = cell(nfile, 1);
for K = 1 : nfile
thisfile = dinfo(K).name;
data{K} = mat2cell( ncread(thisfile, 'velocity'), 3 ); %split on 3rd dimension
end
This would give you a cell array, data, with one entry per file. Each entry would itself be a cell array of length 24, each containing one lon x lat entry.
Note: you might find that you get lat x lon entries instead of lon x lat. If so then
data{K} = mat2cell( permute(ncread(thisfile, 'velocity'), [2 1 3], 3 ); %split on 3rd dimension
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Type Conversion 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!