data = [32 47 51 41 46 3046 38 34 34 52 4848 38 43 41 21 2425 29 33 45 51 3232 27 23 23 34 35 ];v = reshape(data,1,[]); % reshape array (matrix) to vector
nrClass = 5; % 5 classes
width = round(length(v)/ nrClass); str = sprintf('Class %d - %d \n', min(v), min(v) + width );f = length(v( v <= ( min(v) + width ) ) );C = {str, v( v <= ( min(v) + width ) ), f };for i=2:nrClass % Expand size by assign data to a cell outside the current dimensions
C{i,1} = sprintf( 'Class %d - %d\n', min(v) + (i-1)*width, min(v) + i*width ); %class boundaries
C{i,2} = v( v > ( min(v) + (i-1)*width ) & v < ( min(v) + i*width ) ) ; C{i,3} = length(C{i,2} ); % frequency
endC13 = C(:,1:2:3) % Only column 1 and 3, or C13 = C(:,[1,3]) also works
% Convert the cell array, C13, to a table and specify variable names
T = cell2table(C13, 'VariableNames',{'Class' 'Frequent'})
Output:
T =
Class Frequent ___________ ________ [1x15 char] 6 [1x14 char] 5 [1x14 char] 6 [1x14 char] 3 [1x14 char] 5
Best Answer