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

1 view (last 30 days)
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.

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)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!