# Cell array: How can I calculate the mean of it?

1 view (last 30 days)

Show older comments

Max Behr
on 30 Jun 2019

Edited: KALYAN ACHARJYA
on 30 Jun 2019

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 Comments

Image Analyst
on 30 Jun 2019

### Accepted Answer

KALYAN ACHARJYA
on 30 Jun 2019

Edited: KALYAN ACHARJYA
on 30 Jun 2019

load test_file.mat

idx=find(time1>0 & time1<=4);

result=sum(values1(idx))/length(idx);

Do the same for others.

##### 7 Comments

KALYAN ACHARJYA
on 30 Jun 2019

Edited: KALYAN ACHARJYA
on 30 Jun 2019

I dont know, why you are interested to creating two cells?

Good Night!

### More Answers (1)

Dave
on 30 Jun 2019

Edited: Dave
on 30 Jun 2019

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.

### See Also

### Community Treasure Hunt

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

Start Hunting!