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 160366

Submitted on 10 Nov 2012 by Richard Zapor

Correct

1353Size
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/msssystem5/Knots_sample.mat
Elapsed time is 0.204529 seconds.
ans =
/users/msssystem5/numKnots.m
Elapsed time is 0.293581 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.305457 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)   139  Knots    2
 2 KnotTime(msec)    39  Knots    3
 3 KnotTime(msec)   180  Knots    3
 4 KnotTime(msec)   839  Knots   25
 5 KnotTime(msec)    40  Knots    6
 6 KnotTime(msec)   189  Knots   19
 7 KnotTime(msec)   500  Knots    7
 8 KnotTime(msec)   110  Knots    5
 9 KnotTime(msec)    99  Knots   22
10 KnotTime(msec)   650  Knots    6
11 KnotTime(msec)   350  Knots   28
12 KnotTime(msec)  1420  Knots   52
13 KnotTime(msec)    30  Knots    1
14 KnotTime(msec)   579  Knots   61
15 KnotTime(msec)   170  Knots   47
16 KnotTime(msec)   980  Knots   99
17 KnotTime(msec)   289  Knots   28
18 KnotTime(msec)   329  Knots   35
19 KnotTime(msec)   670  Knots    8
20 KnotTime(msec)    89  Knots    6
21 KnotTime(msec)   130  Knots   15
22 KnotTime(msec)  1250  Knots   64
23 KnotTime(msec)   340  Knots   75
24 KnotTime(msec)   170  Knots   43
25 KnotTime(msec)    39  Knots    0
26 KnotTime(msec)    90  Knots    7
27 KnotTime(msec)    40  Knots   14
28 KnotTime(msec)   169  Knots   25
29 KnotTime(msec)   109  Knots   18
30 KnotTime(msec)   200  Knots   30
31 KnotTime(msec)   170  Knots   43
32 KnotTime(msec)   680  Knots   74
33 KnotTime(msec)   920  Knots   62
34 KnotTime(msec)   379  Knots   16
35 KnotTime(msec)  1289  Knots   80
36 KnotTime(msec)    60  Knots   12
37 KnotTime(msec)   290  Knots   67
38 KnotTime(msec)   180  Knots   10
39 KnotTime(msec)    60  Knots   17
40 KnotTime(msec)  1040  Knots   41
41 KnotTime(msec)    30  Knots    0
42 KnotTime(msec)   839  Knots   20
43 KnotTime(msec)   160  Knots   23
44 KnotTime(msec)  1000  Knots   22
45 KnotTime(msec)    29  Knots   16
46 KnotTime(msec)   380  Knots   23
47 KnotTime(msec)    90  Knots   14
48 KnotTime(msec)    50  Knots    6
49 KnotTime(msec)   199  Knots   33
50 KnotTime(msec)    30  Knots    6
Sum KnotTime 18120  msec
Time Score      14.29
Knot Score    1339.00
Total Score    1353.29
Cody Maximum allowed Elapsed time is approximately 53 seconds
Elapsed time is 20.482653 seconds.