MATLAB: Dividing a set of values into groups

a-m

Hi. Please, I need a help with the following. I have a set of very larg number of values. For simplicity, let I have the values x=[-2,-7,-1,-6,-1,-5,-2,-3,-1]. I want to divide x into four sets. The first set x1={-2,-7}, the second set x2={-1,-6}, the 3th is x3={-1,-5} and x4={-2,-3}. taking into account that the last value of x which is -1 is not included as I divide x into four groups. Then I need to find the mean for each set and compare it with each other. Your answer is really appreciated. Thank you.

Best Answer

Here is one possible solution.
% Your data
x = [-2,-7,-1,-6,-1,-5,-2,-3,-1];
% Number of group
nGroup = 4;
% Number of element per each group
nElementPerGroup = floor(numel(x)/nGroup);
% Create a group index
group = repelem((1:nGroup),nElementPerGroup);
% Average of each group
avg = splitapply(@mean,x(1:numel(group)),group);