marksheet in matlab program

11 次查看(过去 30 天)
busy girl
busy girl 2020-12-8
I have following data set in excel file
rollno name courses marks
12 abc maths 10
12 abc english 10
12 abc science 10
13 def maths 5
13 def english 5
12 def sciece 5
now i want to get total marks and percentage of each sutdent in next columns in excel file like below ... so how i do write matlab program
rollno name courses marks total marks perecentage
12 abc maths 10
12 abc english 10
12 abc science 10
30 50%
13 def maths 5
13 def english 5
12 def sciece 5
15 60%

回答(1 个)

Image Analyst
Image Analyst 2020-12-8
编辑:Image Analyst 2020-12-8
You forgot to attach the Excel workbook.
You'd do something like (untested)
[numbers, strings, raw] = xlsread(fileName);
% Then go down numbers looking for valid rows
rollno = numbers(:, 1);
marks = numbers(:, 4);
% Get rid of nan's
blankRows = isnan(rollno);
rollno = rollno(~blankRows);
marks = marks(~blankRows);
% Find the unique rolnos
uniqueNumbers = unique(rollno(~blankRows))
for rn = 1 : length(uniqueNumbers)
thisStudentID = uniqueNumbers(rn);
thisStudentIndexes = rollno == thisStudentID; % Logical vector
% Get average marks for this student
aveMarks(thisStudentID) = mean(marks(thisStudentIndexes));
% Get total marks for this student
totalMarks(thisStudentID) = sum(marks(thisStudentIndexes));
end
Of course you could use splitapply() or grpstats() if you want to do it in a single function call rather than a for loop.
Is it homework?
To Learn MATLAB:

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by