# Find the mean of values in a column when a condition is met

43 views (last 30 days)

Show older comments

I am processing some data in matlab from excel.

The data is in matrix form (used read function).

I need to find the average of column c when column a value for the corresponding row is = to somevalue.

If I were to do this in excel I would use AVERAGEIF(A:A,=650,C:C) and it calculates the correct results. However I don't know how to replicate this statement in matlab.

Ideally the output would be in matrix form. Although I've attached a picture of excel data of a few words. The information I need to process is likely going to be 1000-3000 x 40 matrix.

Any thoughts?

### Accepted Answer

Star Strider
on 13 Jun 2018

Try this:

M = randi(9, 10, 3) % Create Matrix

someValue = 3 % Define ‘somevalue’

C_mean = mean(M(M(:,1) == someValue, 3)) % Mean Of Column #3 For Column #1 = ‘somevalue’

##### 4 Comments

Nev
on 29 May 2019

Edited: Nev
on 29 May 2019

Hi, I have a similar problem but the "some value" needs to be a range so:

If column 1 is between value 1 and value 2 (e.g. 2.000 - 2.999) then average the values in column 2.

somevalue = 2.000:2.999; <-- this doesnt seem to work and I am not sure how to tell it to include all numbers inbetween.

Any help would be much appreciated!

### More Answers (1)

sura Naji
on 25 Oct 2019

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!