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.

1 次查看(过去 30 天)
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?

回答(1 个)

DGM
DGM 2022-2-7
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}

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by