Asked by Tom
on 24 May 2012

I need to taken a mean average of a certain section of a row of a vector - and I need to do that for every row - giving each row's mean average.

What I have is a <300000x17> vector and when the 17 rows are plotted separately they all level off at there own approximate value - maybe by about 40% along the x-axis. Right at the very right hand edge the values seem to do a weird peak so I want to avoid the very end too.

At the end of this I'd hopefully be left with 17 values only.

Any help would be much appreciated as always!

Answer by Honglei Chen
on 24 May 2012

Accepted answer

Hi Tom, your example has 17 columns, not 17 rows. I'll assume you mean a 17x300000 matrix. It's not clear if the region for every row is the same, but I'll assume you want to take first 40% of each row, i.e., 120000 points. You can do the following:

mu = mean(x(:,1:120000),2)

This should be a good starting point.

Honglei Chen
on 25 May 2012

Then you just need to switch the dimensions

mu = mean(x(1:120000,:),1)

You actually don't need that 1 in the end as the first dimension is the default dimension. I included it anyway to show the parallelism among the syntax.

Opportunities for recent engineering grads.

## 1 Comment

## Matt Fig (view profile)

Direct link to this comment:http://nl.mathworks.com/matlabcentral/answers/39348#comment_108894

I need to taken a mean average of a certain section of a row of a vector - and I need to do that for every row - giving each row's mean average.

What I have is a 300000x17 vector and when the 17 rows are plotted separately they all level off at there own approximate value - maybe by about 40% along the x-axis. Right at the very right hand edge the values seem to do a weird peak so I want to avoid the very end too.

At the end of this I'd hopefully be left with 17 values only.

Any help would be much appreciated as always!