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

조회 수: 25 (최근 30일)
Ashal
Ashal 2022년 12월 9일
댓글: Peter Perkins 2022년 12월 12일
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
Ashal
Ashal 2022년 12월 9일
편집: Ashal 2022년 12월 9일
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 2022년 12월 12일
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?

댓글을 달려면 로그인하십시오.

채택된 답변

Voss
Voss 2022년 12월 9일
편집: Voss 2022년 12월 9일
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.
  댓글 수: 2
Ashal
Ashal 2022년 12월 9일
It worked. Thank you so much.
Voss
Voss 2022년 12월 9일
You're welcome!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 App Building에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by