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 160369

Submitted on 10 Nov 2012 by Richard Zapor

Correct

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

This solution is outdated. To rescore this solution, log in.

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
rehash path % Make numKnots.m available
toc
ans =
/users/msssystem16/Knots_sample.mat
ans =
/users/msssystem16/numKnots.m
[Warning: Function
/opt/mlsedu/mdcsserver/latest/m/web_common/shadow/license.m
has the same name as a MATLAB builtin. We suggest you rename
the function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 189
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function
/opt/mlsedu/mdcsserver/latest/m/web_common/shadow/graphicsAndGuis/uicontrol.m
has the same name as a MATLAB builtin. We suggest you rename
the function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 189
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/home.m has the
same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 189
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/keyboard.m has
the same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 189
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/more.m has the
same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 189
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/pause.m has
the same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 189
  In verifyCode at 40
  In fevalJSON at 14]
Elapsed time is 3.085537 seconds.
3
Pass
 
%%
cases=50;
nKnots=zeros(cases,1);
KnotTime=zeros(cases,1);
load Knots_sample.mat
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))
Tknots=sum(nKnots);;
fprintf('Knot Score %10.2f\n',Tknots)
fprintf('Cody Maximum allowed Elapsed time is approximately 53 seconds\n')
toc
feval(  @assignin,'caller','score',min( 2000,Tknots )  );
1 KnotTime(msec)   399  Knots    1
 2 KnotTime(msec)   100  Knots    5
 3 KnotTime(msec)   120  Knots    5
 4 KnotTime(msec)  1060  Knots   13
 5 KnotTime(msec)    40  Knots    6
 6 KnotTime(msec)   160  Knots   15
 7 KnotTime(msec)   349  Knots    7
 8 KnotTime(msec)    79  Knots    6
 9 KnotTime(msec)    89  Knots   17
10 KnotTime(msec)   509  Knots    6
11 KnotTime(msec)   209  Knots   22
12 KnotTime(msec)  1949  Knots   58
13 KnotTime(msec)    39  Knots    1
14 KnotTime(msec)   470  Knots   44
15 KnotTime(msec)   129  Knots   52
16 KnotTime(msec)  1110  Knots  100
17 KnotTime(msec)   230  Knots   25
18 KnotTime(msec)   199  Knots   36
19 KnotTime(msec)   689  Knots    9
20 KnotTime(msec)    90  Knots    6
21 KnotTime(msec)   109  Knots   13
22 KnotTime(msec)  1239  Knots   60
23 KnotTime(msec)   240  Knots   52
24 KnotTime(msec)   119  Knots   30
25 KnotTime(msec)    39  Knots    0
26 KnotTime(msec)   100  Knots    7
27 KnotTime(msec)    79  Knots   15
28 KnotTime(msec)   110  Knots   15
29 KnotTime(msec)   100  Knots   14
30 KnotTime(msec)   129  Knots   36
31 KnotTime(msec)   120  Knots   34
32 KnotTime(msec)   660  Knots  104
33 KnotTime(msec)   850  Knots   61
34 KnotTime(msec)   259  Knots    8
35 KnotTime(msec)  1350  Knots   57
36 KnotTime(msec)    69  Knots   11
37 KnotTime(msec)   189  Knots   68
38 KnotTime(msec)   149  Knots    8
39 KnotTime(msec)    69  Knots   12
40 KnotTime(msec)  1040  Knots   40
41 KnotTime(msec)    79  Knots    0
42 KnotTime(msec)   830  Knots    8
43 KnotTime(msec)   129  Knots   19
44 KnotTime(msec)   980  Knots   22
45 KnotTime(msec)    69  Knots   13
46 KnotTime(msec)   270  Knots   19
47 KnotTime(msec)    90  Knots    5
48 KnotTime(msec)    69  Knots    7
49 KnotTime(msec)   139  Knots   20
50 KnotTime(msec)    49  Knots    5
Sum KnotTime 17769  msec
Knot Score    1197.00
Cody Maximum allowed Elapsed time is approximately 53 seconds
Elapsed time is 22.666785 seconds.