I have a 2x4 matrix called A. I would like to find the sum of each column and divide each element in that column with the sum of that column. However, when I run the loop, the first 3 columns have no values in them. How do I rectify this? The following is my code:
A = rand(2,4)
for i=length(A)
B(:,i) = A(:,i)./sum(A(:,1));
end

 채택된 답변

VBBV
VBBV 2022년 6월 6일
편집: VBBV 2022년 6월 6일

0 개 추천

A = rand(2,4)
A = 2×4
0.9006 0.7820 0.6684 0.4557 0.2964 0.9567 0.3112 0.9163
for i=1:length(A) % using a single value
B(:,i) = A(:,i)./sum(A(:,i)); % divide each element with sum of that column
end
B
B = 2×4
0.7524 0.4498 0.6823 0.3322 0.2476 0.5502 0.3177 0.6678
It seems you are using a single value in loop counter

댓글 수: 2

VBBV
VBBV 2022년 6월 6일
편집: VBBV 2022년 6월 6일
if you want values for first 3 columns and rows, start with 1. you also need to update
sum(A(:,1)) % this is for 1st col only
with
sum(A(:,i) % corresponding column
Leeba Ann Chacko
Leeba Ann Chacko 2022년 6월 6일
Thank you! I can't believe I missed that. :P

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2022년 6월 6일

댓글:

2022년 6월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by