How to take mean of each row/column of matrix with while loop
조회 수: 4 (최근 30일)
이전 댓글 표시
I want to take mean of each row/column without mean command.
I created this code but its not working, however it was working with For loop. As I changed it to while loop. Its not working.
%%Taking Mean of Each and Column separately without using built-it mean function. You can use While Loop.
A = [0:2:8;2:1:6;9:3:21]
dim = size(A);
mean = zeros(1,dim(2));
j=1;
while j <= dim(2)
i=1;
while i <= dim(1)
mean(j) = mean(j) + A(i,j);
end
mean(j) = mean(j) / dim(1);
end
mean
%%
If I have a matrix like
A = [1 2 3 4; 4 3 2 1; 3 2 1 4]
and want to call each row or column individually, then I want to perform some operation on that individual row elements. i.e I want to add the elements of each row and column and then I want to take mean of those row and column separately. I want to do it with loop function.
댓글 수: 0
채택된 답변
J Chen
2020년 2월 4일
You need to update i and j (add 1 to them) at the end of each while loop.
댓글 수: 3
J Chen
2020년 2월 4일
You need to add i=i+1 at the end of the inner while loop and j=j+1 at the end of the first while loop. It is better to avoid using mean as the variable name since it is the name of a build in function.
추가 답변 (1개)
fred ssemwogerere
2020년 2월 4일
Hello, this should do nicely;
% If you want to calculate the average for each row:
A=[1 2 3 4;4 3 2 1;3 2 1 4];
m=0;Z=zeros(size(A,1),1);
for k=1:size(A,1)
m=m+1;
Z(m,1)=0;
for t=1:size(A,2)
Z(m,1)=Z(m,1)+A(k,t);
end
Z(m,1)=Z(m,1)/size(A,1);
end
% Getting the average for each column should now be easy
참고 항목
카테고리
Help Center 및 File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!