I want to split 4D single data (3600*40*40*40) where 3600 is time. I want to split the data for every 36 seconds to get 100 profile containing 36 sec in each profile.

2 views (last 30 days)
I want to split 4D single data (3600*40*40*40) where 3600 is time. I want to split the data for every 36 seconds to get 100 profile containing 36 sec in each profile like for first wind data profile it will take 1-36 sec and second data profile it will take 37-72 seconds and so on. Can anyone please help me?

Answers (1)

DGM
DGM on 7 Feb 2022
Just put it in a cell array:
A = rand(3600,4,4,4); % test array
B = mat2cell(A,repmat(36,1,100),4,4,4)
B = 100×1 cell array
{36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double} {36×4×4×4 double}

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!