Divide each column by the sum of the column in a matrix

조회 수: 3 (최근 30일)
Fredrik Scheie
Fredrik Scheie 2022년 5월 19일
편집: Matt J 2022년 5월 20일
I am sure this is an elementary question, but I could not find the answer when searching the Matlab website. I was wondering how to divide each column in a matrix by the sum of that column and do the same process for all the columns in a matrix. The result should then be returned as a new matrix.
As an example take the following matrix
D = [-0.442898926677253 -0.165258150390309 0.850111606631490 -0.801783725737275;
-0.505610279127129 0.455832504673115 -0.205467096352270 4.76435784320108e-15;
-0.540885414880185 -0.746406858955920 -0.439177413926944 0.534522483824847;
-0.505610279127129 0.455832504673115 -0.205467096352275 0.267261241912423];
Now, for the first column;
U(:,1)/sum(U(:,1))
gets the first column of D divided by the sum of the column, but how do I do this for all of the columns and return the output as a new matrix?
  댓글 수: 2
Matt J
Matt J 2022년 5월 19일
U(:,1)/sum(U(:,1)) gets the first column of D divided by the sum of the column
No, it does that for U, not D.
Fredrik Scheie
Fredrik Scheie 2022년 5월 19일
Yes, well observed I should have written D in the expression.

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

채택된 답변

Matt J
Matt J 2022년 5월 19일
  댓글 수: 6
Torsten
Torsten 2022년 5월 19일
Just display D and look at the respective columns. You should be able to find the reason by inspection.
Matt J
Matt J 2022년 5월 19일
편집: Matt J 2022년 5월 20일
Wonder what could cause it to return as 'not a number'?
That would happen if the column sum is zero, and the column also contains some zeros, e.g.,
D=[-1;0;1];
D/sum(D)
ans = 3×1
-Inf NaN Inf

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

추가 답변 (0개)

카테고리

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

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by