I have an example data:
Column 1 is Student Number, Column 2-4 are grades
1.0 68.0 45.0 92.0
2.0 83.0 54.0 93.0
3.0 61.0 67.0 91.0
4.0 70.0 66.0 92.0
5.0 75.0 68.0 96.0
6.0 82.0 67.0 90.0
How can I create a for loop that would sum Column 2-4 and relate it back to the student number.
It should print out: "Student" 1 "Total_score" 205 (This added columns 2-4)"
Thanks!

댓글 수: 1

James Tursa
James Tursa 2022년 1월 18일
편집: James Tursa 2022년 1월 18일
What have you done so far? What specific problems are you having with your code? Are you required to use a for-loop?

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

 채택된 답변

Voss
Voss 2022년 1월 18일

0 개 추천

data = [ ...
1.0 68.0 45.0 92.0; ...
2.0 83.0 54.0 93.0; ...
3.0 61.0 67.0 91.0; ...
4.0 70.0 66.0 92.0; ...
5.0 75.0 68.0 96.0; ...
6.0 82.0 67.0 90.0; ...
];
total = sum(data(:,2:4),2);
for i = 1:size(data,1)
fprintf('"Student" %d "Total_score" %g (This added columns 2-4)"\n',data(i,1),total(i,1));
end
"Student" 1 "Total_score" 205 (This added columns 2-4)" "Student" 2 "Total_score" 230 (This added columns 2-4)" "Student" 3 "Total_score" 219 (This added columns 2-4)" "Student" 4 "Total_score" 228 (This added columns 2-4)" "Student" 5 "Total_score" 239 (This added columns 2-4)" "Student" 6 "Total_score" 239 (This added columns 2-4)"
Or, if you really want to do the sum in a loop:
total = NaN(size(data,1),1);
for i = 1:size(data,1)
total(i) = data(i,2)+data(i,3)+data(i,4);
end
for i = 1:size(data,1)
fprintf('"Student" %d "Total_score" %g (This added columns 2-4)"\n',data(i,1),total(i,1));
end
"Student" 1 "Total_score" 205 (This added columns 2-4)" "Student" 2 "Total_score" 230 (This added columns 2-4)" "Student" 3 "Total_score" 219 (This added columns 2-4)" "Student" 4 "Total_score" 228 (This added columns 2-4)" "Student" 5 "Total_score" 239 (This added columns 2-4)" "Student" 6 "Total_score" 239 (This added columns 2-4)"

댓글 수: 4

James Tursa
James Tursa 2022년 1월 18일
Homework is getting easier all the time ...
Michael Angeles
Michael Angeles 2022년 1월 18일
Could you explain the second 2 on: total = sum(data(:,2:4),2);
Thanks!!
Voss
Voss 2022년 1월 18일
The second 2 is to tell the sum() function to sum along the 2nd dimension. See the description in the documentation here.
Michael Angeles
Michael Angeles 2022년 1월 18일
Thank you!

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

추가 답변 (0개)

카테고리

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

질문:

2022년 1월 18일

댓글:

2022년 1월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by