How to Access and Rename Doubles that are Stored in a Large Cell
5 次查看(过去 30 天)
显示 更早的评论
I have a Cell that is 1x193. Each of the 193 elements is a 500x100 double.
I need to be able to access every element in this cell and rename each double to be Data1, Data2, Data3, etc. such that I can perform means on the rows of Data1, Data2, etc.
Does anyone have suggestions for how to accomplish this?
2 个评论
Stephen23
2020-2-17
"Does anyone have suggestions for how to accomplish this? "
Use indexing.
Creating/accessing numbered variables would be entirely the wrong way to go about this:
Indexing is simple, neat, and very efficient. Using numbered variables is a sign that you are doing something wrong.
回答(1 个)
Bhaskar R
2020-2-17
You no need to rename every elecment(500x100 double) of the cell which leads much complications, you can perform your operation directly using command cellfun
result_mean = cellfun(@(x)mean(x, 2), cell_array, 'UniformOutput', false); % cell_array is your vartiable
You can access mean values of the data as
result_mean{1}, result_mean{2}..result_mean{193}; % for mean values of the each row of the double array
5 个评论
Stephen23
2020-2-18
Do NOT use datastore as a variable name, it is the name of an important inbuilt function.
Where C is your cell array, calculate the mean of each row:
A = cat(3, C{:});
M = mean(A,2)
It will have size 500x1x193. Use indexing to access particular pages, or permute or reshape to rearrange those dimensions. Avoid squeeze.
另请参阅
类别
在 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!