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

1 visualización (últimos 30 días)
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.

Respuesta aceptada

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

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by