# How do I take repeat the calculation of average column?

1 view (last 30 days)
tinkiewinkie on 23 Jun 2020
Commented: tinkiewinkie on 24 Jun 2020
Hi suppose I have the above data, how do I repeat the calculation for the average column of data 1, data 2 and data 3 respectively suppose that the 0-4 means 0 to 4 seconds and 4-8 means 4 to 8 seconds and each data have different length. I wish to do this for 100 data. I wish to rename the data to just data1,data2 and data3...
my final result should be something as shown below:

Rik on 23 Jun 2020
splitapply will do the trick. You can fairly easily find the number between 'data' and '--', so creating the group IDs shouldn't be too hard.
If you need help with implementing this, share the data instead of an image.
Rik on 24 Jun 2020
No, I meant this:
tokens=regexp(str,'sound([0-9]+)--','tokens');%capture the number as token
tokens=[tokens{:}];tokens=[tokens{:}];%unwrap
[~,IDs,G]=unique(str2double(tokens));%convert to positive integer
names=arrayfun(@(x) sprintf('sound%d',x),IDs,'UniformOutput',false);
output=splitapply(@(x) mean(x,1),num,G);
tinkiewinkie on 24 Jun 2020
Yes thank you for your great help in this!

### Categories

Find more on Characters and Strings 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!