How can I save 3d arrays in a cell array?
8 次查看(过去 30 天)
显示 更早的评论
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 个评论
James Tursa
2018-6-16
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.
采纳的回答
Walter Roberson
2018-6-16
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 个评论
Walter Roberson
2018-6-16
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!