MATLAB Answers

Trouble calculating column mean from a matrix - using different indices for each row

1 view (last 30 days)
David McVea
David McVea on 16 Oct 2019
Commented: Matt J on 17 Oct 2019
Hello,
I am trying to calculate a column of means from a 2-D matrix. The length of the mean is equally to the number of rows of the matrix.
However, the index to each row is different. For example, row 1 I want the mean of colums 4 to 8. Row 2 I want the means of columns 3 to 5.
I have tried
mean(myMatrix(:,VariableIndex1:VaribleIndex2))
Where VariableIndex1 and VariableIndex2 are columns for the start and end indices of the columns I need means from
For the example above this would be:
mean(myMatrix(:,[4;3]:[3:5]))
- but this seems to give a non-sensical result.
Any thoughts or advice on how to do this? The column acutally has 100 000 rows so I don't want to loop through it.
Thanks.

  0 Comments

Sign in to comment.

Accepted Answer

Matt J
Matt J on 16 Oct 2019
Edited: Matt J on 17 Oct 2019
[m,n]=size(myMatrix); %Edited
e=1:n;
mask=VariableIndex1(:)<=e & e<=VariableIndex2(:);
result=sum(myMatrix.*mask,2)./sum(mask,2);

More Answers (0)

Sign in to answer this question.

Products


Release

R2018b

Translated by