Code covered by the BSD License
-
Contest Statistics
-
activityByHour(s,contestName)
-
addContourLines(orders,mi,ma,...
Calculate score surface.
-
dailyActivity(p)
Highlighting all the entries submitted on each day in red shows shows how
-
entryLength(p)
-
final(scoreResults,timeResult...
FINAL Calculates the overall entry score based on results, time,
-
getMilestones(contestName)
-
labelCornerPoints(xx,yy,autho...
-
lightGray
-
mostActive(s)
-
normalize(y,orders,mi,ma)
-
parents(s,p,orders)
-
participantsByDay(s)
-
percentImprovement(leaders)
Find positions of all potential labels.
-
prepareData
Rename some fields.
-
reverse(y,orders,mi,ma)
-
scoreStair(p,orders)
Plot all entries.
-
submissionsOverTime(s)
Make sure the right edges match.
-
zigzag(p,orders)
Plot entries.
-
View all files
from
MATLAB Contest Statistics
by Matthew Simoneau
The code used to generate the "Statistics" page for the MATLABĀ® Contest.
|
| prepareData
|
function [s,p,leaders] = prepareData
load contest_data.mat d
s = d';
% Rename some fields.
[s(:).date] = deal(s.timestamp);
s = rmfield(s,'timestamp');
[s(:).based_on] = deal(s.parent);
s = rmfield(s,'parent');
[s(:).codeLength] = deal(s.charCount);
s = rmfield(s,'charCount');
[s(:).rawScore] = deal(s.result);
s = rmfield(s,'result');
% Add isLeader.
smallest = Inf;
for i = 1:length(s)
if s(i).passed
if (s(i).score < smallest)
s(i).isLeader = true;
smallest = s(i).score;
else
s(i).isLeader = false;
end
else
s(i).isLeader = false;
end
end
% Find only those which passed.
p = s([s.passed]);
% Separate from the pack.
leaders = p([p.isLeader]);
% Time in front.
for i = 1:length(leaders)-1
leaders(i).timeInFront = leaders(i+1).date-leaders(i).date;
end
leaders(end).timeInFront = now-leaders(end).date;
% Absolute improvement
leaders(1).improvement = Inf;
for i = 2:length(leaders)
prev = leaders(i-1).score;
curr = leaders(i).score;
leaders(i).improvement = abs(curr-prev);
end
% Percent improvement.
leaders(1).percentImprovement = Inf;
for n = 2:length(leaders)
curr = leaders(n).score;
prev = leaders(n-1).score;
leaders(n).percentImprovement = 100*abs((curr-prev)/prev);
end
|
|
Contact us at files@mathworks.com