Mean value every 60 rows
显示 更早的评论
Hello, I got my table, with 180 rows and 2 columns, each column is a variable X1, X2. I want to have the mean of X1 60 rows in 60 rows, the same for X2. This is the result media =
60.1635
60.1523
60.1492
media =
513.0252
513.1533
513.1119
Question 1) How to store the results in a matrix or table 3x2 so I would have something like:
60.1635 513.0252
60.1523 513.1533
60.1492 513.1119
Question 2) For example if i wanted to make the average each 120 rows, what would I need to change? is just the "n" value? because i dont understand what does the "1" do in here
a = reshape(tabela(:,j),[],1);
Code is here:
n = 60
for j=1:2
a = reshape(tabela(:,j),[],1);
media = arrayfun(@(i) mean(tabela(i:i+n-1,j)),1:n:length(a)-n+1)'
end
Thanks for your help!
采纳的回答
更多回答(2 个)
Simpler:
No need to use loops/arrayfun or cellfun at all. Simpler solution is to use just reshape with mean,
cc = reshape(mean(reshape(dummy,n,[])),[],2)
cc =
60.1635 513.0252
60.1523 513.1533
60.1492 513.1119
5 个评论
Tiago Dias
2018-2-22
KL
2018-2-22
The answer shown above is 3x2 matrix of double!
Tiago Dias
2018-2-23
KL
2018-2-23
That's an example Tiago! You should replace dummy with your matrix.
Tiago Dias
2018-2-23
sura Naji
2019-10-25
0 个投票
l have amatrix contact from 1 colum and 1000 rows l want to find the mean and the standard deviation also l want to find the worst value of this because l use the particle swarm optimization
类别
在 帮助中心 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!