Stacking 2D matrix to 3D using time as a third variable

8 visualizaciones (últimos 30 días)
Ashal
Ashal el 9 de Dic. de 2022
Comentada: Peter Perkins el 12 de Dic. de 2022
Hi I am a beginner in matlab and I am trying to stack 2D matrix into 3D matrix. I have variable sst as 1440*720 and time variable as 1*366. These are all daily data. How do I stack time to sst so that I have 366*1440*720 matrix. I have tried using cat and meshgrid but nothing seems to work. Thank you.
data.time = cat(3,data.time,data.sst)
or
[data.sst1]=meshgrid(data.sst,data.time); (this multiplies 1440*720 and gives me 366*1036800 matrix)
  3 comentarios
Ashal
Ashal el 9 de Dic. de 2022
Editada: Ashal el 9 de Dic. de 2022
Thank you. I do have individual 366 1440*720 and I am using the following code to read data. So basically I have 366 different files that has sst(1440*720) and time values Here ii =366. I wish I could add data here but it is a huge folder.
gunzip("2020.zip.gz")
!ls 2020/oisst-*.nc>data.ptr
x = importdata('data.ptr'); %here x is cell array
for ii = 1:length(x);
data.time(ii) = ncread(x{ii},'time');
%ncdisp("2020/oisst-avhrr-v02r01.20200101.nc"); %ncdisp look inside nc file
data.sst = ncread(x{ii}, 'sst');
end
Peter Perkins
Peter Perkins el 12 de Dic. de 2022
Just out of curiousity ...
366, OK, days in 2020 (although you may have a bug when you work on a non-leap year)
1440, OK, so maybe 24*60 minutes in a day?
What does 720 represent?
Or is 1440x720 a spatial lat/lon grid?

Iniciar sesión para comentar.

Respuesta aceptada

Voss
Voss el 9 de Dic. de 2022
Editada: Voss el 9 de Dic. de 2022
nx = numel(x);
data = struct( ...
'time',zeros(1,nx), ...
'sst',zeros(nx,1440,720);
for ii = 1:nx
data.time(ii) = ncread(x{ii},'time');
%ncdisp("2020/oisst-avhrr-v02r01.20200101.nc"); %ncdisp look inside nc file
data.sst(ii,:,:) = ncread(x{ii}, 'sst');
end
That makes data.sst a 366*1440*720 array, as requested.

Más respuestas (0)

Categorías

Más información sobre App Building en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by