Cell array: How can I calculate the mean of it?
3 次查看(过去 30 天)
显示 更早的评论
Hello,
I got an cell array. You can find it attached.
time1, etc. are the times of the different testing. And values are the meassured values according to the times. So values 1 is connected with time1 and values2 is connected with time2
I would like to get the mean of the "values1" if the conditions "time1>0 & time<=3" is fulfilled.
So the solution would be (4+6+3)/3=4.33333
How can I do this?
Thanks.
3 个评论
Image Analyst
2019-6-30
Make it easy for people to help you, not hard, by attaching your cell array in a .mat file. In the meantime, check out cellfun(), cell2mat(), and mean().
采纳的回答
KALYAN ACHARJYA
2019-6-30
编辑:KALYAN ACHARJYA
2019-6-30
load test_file.mat
idx=find(time1>0 & time1<=4);
result=sum(values1(idx))/length(idx);
Do the same for others.
7 个评论
KALYAN ACHARJYA
2019-6-30
编辑:KALYAN ACHARJYA
2019-6-30
I dont know, why you are interested to creating two cells?
Good Night!
更多回答(1 个)
Dave
2019-6-30
编辑:Dave
2019-6-30
Hi Max,
Since it looks like you have the time1 and values1 data in a 1 x 7 numeric array I would create a single 2 x 7 array an then transpose it. It reads better, atleast for me.
A = [time1;values1]';
Take a look at then using find() with the conditions you specified to identify those rows of A that meet the conditions. Apply this index to the 2nd column and then use the mean() function on the output.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!