How do I take repeat the calculation of average column?

1 回表示 (過去 30 日間)
tinkiewinkie
tinkiewinkie 2020 年 6 月 23 日
コメント済み: tinkiewinkie 2020 年 6 月 24 日
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
Rik 2020 年 6 月 23 日
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.
  11 件のコメント
Rik
Rik 2020 年 6 月 24 日
No, I meant this:
[num,str]=xlsread('output2.xlsx');
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
tinkiewinkie 2020 年 6 月 24 日
Yes thank you for your great help in this!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by