# Sub-Function help!

7 views (last 30 days)
Jay on 13 Mar 2016
Commented: MHN on 14 Mar 2016
I have a homework that I don't understand. This what it says
You need to make a function of [A,B] = mystatistic(Scores).
A = (average of Test 1 ) * (standard deviation of Test 3)
B = (median value of Test2) / (average of Test2)
(1) Use of sub-function
(2) Use of inline function for the sub function
I am not sure how to do [A,B] = mystatistic(Scores). Also I know what is a sub-function but I don't get it here.

MHN on 13 Mar 2016
Edited: MHN on 13 Mar 2016
Based on the question it seems "Scores" is a N*3 matrix (N shows number of students). You should write a function that outputs A and B. So your main function will look like
function [A,B] = mystatistic(Scores)
%Calculation
end
To test your program use the following Score as an example (N=10)
Scores = randi(100,10,3) %let assume the exam is out of 100
Now, try the code yourself and if you have question let us know. We are not going to solve your assignment! ;)
##### 2 CommentsShowHide 1 older comment
MHN on 14 Mar 2016
function [A,B] = mystatistic(Scores)
fid = fopen('TestScoresKim.txt','r'); % open file
fgetl(fid); % ignore the second line
Scores = fscanf(fid,'%f'); % read the numbers in the text file
Scores = reshape(Scores,[4 20])'; % put those numbers in a 20*4 matrix
display(Scores);
Test1 = Scores(:,2); %2nd column shows test1
Test2 = Scores(:,3); %3rd column shows test2
Test3 = Scores(:,4); %4th column shows test3
A = ((mean(Test1)) * (std(Test3))) % compute A
B = (median(Test2)) * (mean(Test2)) % compute B
end
But you should also used subfunction, for example you can write the code for mean by yourself (just a loop which sum up the elements of a vector divided by size).