How to find max,min,average values from a cell array?
    29 views (last 30 days)
  
       Show older comments
    
Hi, I have a cell array of size 1x316 which further contains multidimensional cell arrays.
Each cell array is of different sizes like 1xa, 1xb, 1xc and so on.All values inside the cell arrays are double numeric type.
I want to find max, min , average values from each cell array and finally save the output in 3 different
cell arrays of sizes 1x316 say max_pause_duration(1x316), min_pause_duration(1x316) and mean_pause_duration(1x316).
Initially i have stored cell array in s2 which is a 1x1 struct with one field ->pause_duration of size 1x316.
The cellfun function works very slow as its a big data.
Please help me out on this.
   s2 = load('pause_durations_rome.mat');
   max_pause_time =cell(size(s2.pause_duration));
   min_pause_time = cell(size(s2.pause_duration));
   average_pause_time = cell(size(s2.pause_duration));
   for iter = 1:length(s2.pause_duration)
     a=cell2mat(s2.pause_duration,);
     max_pause_time{iter} = max(a(:));
     min_pause_time{iter} = min(a(:)); 
     average_pause_time{iter} = mean(a(:));
     end
0 Comments
Accepted Answer
  Azzi Abdelmalek
      
      
 on 30 Mar 2016
        
      Edited: Azzi Abdelmalek
      
      
 on 30 Mar 2016
  
      A={ num2cell(rand(1,4))  num2cell(rand(1,5))}
out1=cellfun(@(x) min(cell2mat(x)),A)
out2=cellfun(@(x) max(cell2mat(x)),A)
out3=cellfun(@(x) mean(cell2mat(x)),A)
More Answers (1)
  Venkat Ta
 on 23 Jul 2019
        Hi really nice function works fine but inside the cell 6*30double  how i get the mean, max, and min?

0 Comments
See Also
Categories
				Find more on Logical 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!

