Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 169263

Submitted on 27 Nov 2012 by @bmtran

Correct

1220Size
Leading solution size is 1198.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%%
feval(@assignin,'caller','score',2000);

                    
2
Pass
 
%%
tic
%urlwrite('http://tinyurl.com/matlab-Knots','Knots_sample.mat')
%urlwrite('http://tinyurl.com/matlab-numKnots','numKnots.m') % Fast numKnots
urlwrite('http://rmatlabtest.appspot.com/testsuite_sample_knots.mat','Knots_sample.mat')
toc
urlwrite('http://rmatlabtest.appspot.com/numKnots.m','numKnots.m') % Fast numKnots
toc
rehash path % Make numKnots.m available
toc
ans =
/users/msssystem19/Knots_sample.mat
Elapsed time is 0.616793 seconds.
ans =
/users/msssystem19/numKnots.m
Elapsed time is 0.703298 seconds.
[Warning: Function license has the same name as a MATLAB builtin. We suggest you rename the function
to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 231
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function mex has the same name as a MATLAB builtin. We suggest you rename the function to
avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 231
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function home has the same name as a MATLAB builtin. We suggest you rename the function to
avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 231
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function keyboard has the same name as a MATLAB builtin. We suggest you rename the function
to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 231
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function more has the same name as a MATLAB builtin. We suggest you rename the function to
avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 231
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function pause has the same name as a MATLAB builtin. We suggest you rename the function to
avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 231
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function simulink has the same name as a MATLAB builtin. We suggest you rename the function
to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 231
  In verifyCode at 40
  In fevalJSON at 14]
Elapsed time is 0.717485 seconds.
3
Pass
 
%%
cases=50; % Reduced to 40 from 50
nKnots=zeros(cases,1);
KnotTime=zeros(cases,1);
load Knots_sample.mat
testsuite=suite;
for n=1:cases
 a=testsuite(n).a;
 xyIn=testsuite(n).xyIn;
 wts=testsuite(n).wts;
 rng(2,'twister')
 time0 = cputime;
 xyOut=solver(a,xyIn,wts);
 KnotTime(n) = cputime - time0;
 if size(unique(xyOut,'rows'),1)<length(wts)
  nKnots(n)=Inf; % Points must be unique
 else
  nKnots(n)=numKnots(xyOut,a);
 end
end
for n=1:cases
 fprintf('%2i KnotTime(msec) %5i  Knots %4i\n',n,floor(KnotTime(n)*1000),nKnots(n))
end
TKnotTime=sum(KnotTime);
fprintf('Sum KnotTime %5i  msec\n',floor(TKnotTime*1000))
T_score=6.5*exp(TKnotTime/23);
Tknots=sum(nKnots);;
fprintf('Time Score %10.2f\n',T_score)
fprintf('Knot Score %10.2f\n',Tknots)
fprintf('Total Score %10.2f\n',Tknots+T_score)
fprintf('Cody Maximum allowed Elapsed time is approximately 53 seconds\n')
toc
feval(  @assignin,'caller','score',min( 2000,Tknots+floor(T_score) )  );
1 KnotTime(msec)   460  Knots    2
 2 KnotTime(msec)   159  Knots    2
 3 KnotTime(msec)   270  Knots    0
 4 KnotTime(msec)  1839  Knots   16
 5 KnotTime(msec)    60  Knots    6
 6 KnotTime(msec)   549  Knots   18
 7 KnotTime(msec)   839  Knots    7
 8 KnotTime(msec)   169  Knots    4
 9 KnotTime(msec)   269  Knots   21
10 KnotTime(msec)   849  Knots    5
11 KnotTime(msec)   850  Knots   20
12 KnotTime(msec)  4210  Knots   65
13 KnotTime(msec)    70  Knots    0
14 KnotTime(msec)  1730  Knots   47
15 KnotTime(msec)   639  Knots   42
16 KnotTime(msec)  4240  Knots  103
17 KnotTime(msec)  1009  Knots   25
18 KnotTime(msec)   940  Knots   35
19 KnotTime(msec)   960  Knots    2
20 KnotTime(msec)   200  Knots    6
21 KnotTime(msec)   269  Knots    9
22 KnotTime(msec)  3930  Knots   53
23 KnotTime(msec)  1399  Knots   71
24 KnotTime(msec)   390  Knots   34
25 KnotTime(msec)    49  Knots    0
26 KnotTime(msec)   230  Knots    7
27 KnotTime(msec)   200  Knots   11
28 KnotTime(msec)   339  Knots   19
29 KnotTime(msec)   350  Knots   16
30 KnotTime(msec)   680  Knots   28
31 KnotTime(msec)   609  Knots   27
32 KnotTime(msec)  2970  Knots   89
33 KnotTime(msec)  2759  Knots   61
34 KnotTime(msec)   789  Knots    8
35 KnotTime(msec)  4040  Knots   73
36 KnotTime(msec)   130  Knots    4
37 KnotTime(msec)  1099  Knots   68
38 KnotTime(msec)   430  Knots    8
39 KnotTime(msec)   150  Knots   11
40 KnotTime(msec)  2369  Knots   37
41 KnotTime(msec)   119  Knots    0
42 KnotTime(msec)  1650  Knots    8
43 KnotTime(msec)   490  Knots   22
44 KnotTime(msec)  1550  Knots   22
45 KnotTime(msec)   160  Knots   10
46 KnotTime(msec)   669  Knots   10
47 KnotTime(msec)   189  Knots    6
48 KnotTime(msec)   140  Knots    3
49 KnotTime(msec)   559  Knots   20
50 KnotTime(msec)   100  Knots    4
Sum KnotTime 49140  msec
Time Score      55.05
Knot Score    1165.00
Total Score    1220.05
Cody Maximum allowed Elapsed time is approximately 53 seconds
Elapsed time is 51.180265 seconds.