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!