Filter löschen
Filter löschen

For Loop Question on index

1 Ansicht (letzte 30 Tage)
Michael Angeles
Michael Angeles am 18 Jan. 2022
Kommentiert: Michael Angeles am 18 Jan. 2022
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 Kommentar
James Tursa
James Tursa am 18 Jan. 2022
Bearbeitet: James Tursa am 18 Jan. 2022
What have you done so far? What specific problems are you having with your code? Are you required to use a for-loop?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Voss
Voss am 18 Jan. 2022
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 Kommentare
Voss
Voss am 18 Jan. 2022
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 am 18 Jan. 2022
Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by