calculate the mean of a matrix by the first column

조회 수: 3 (최근 30일)
yue li
yue li 2019년 1월 24일
댓글: yue li 2019년 1월 24일
Hello,
I just leaned MATLAB.
I want to calculate the mean of a matrix by the first column:
Input:
1 9 7 5 7
2 1 1 1 3
2 5 5 4 4
3 1 1 1 3
3 5 5 4 4
3 1 1 1 3
3 5 6 4 4
4 1 8 1 3
4 5 5 4 4
5 1 5 1 3
6 1 4 1 3
7 5 5 4 4
Output:
1 9 7 5 7
2 3 3 2.5 3.5
3 3 3.25 2.5 3.5
4 3 6.5 2.5 3.5
5 5 1 5 1
6 6 1 4 1
7 7 5 5 4
My code:
G = findgroups(M(:,1 ));
Out = [unique(M(:,1)) splitapply(@mean, M(:,2:end), G)]
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
Error in splitapply>localapply (line 257)
finalOut{curVar} = vertcat(funOut{:,curVar});
Error in splitapply (line 132)
varargout = localapply(fun,splitData,gdim,nargout);
Thanks in advance for any suggestions and help!
Yue

채택된 답변

Matt J
Matt J 2019년 1월 24일
Out = [unique(M(:,1)) splitapply(@(z)mean(z,1), M(:,2:end), G)]
  댓글 수: 1
yue li
yue li 2019년 1월 24일
Hello, Matt J,
This works!
Thank you so much fro your great help!
With Best!
Yue

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Matt J
Matt J 2019년 1월 24일
편집: Matt J 2019년 1월 24일
Or, with tables,
Out=varfun(@mean,array2table(M),'GroupingVariables','M1');
Out(:,2)=[],

카테고리

Help CenterFile Exchange에서 Polynomials에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by