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 160593

Submitted on 12 Nov 2012 by Richard Zapor

Correct

1159Size
This is the leading solution.
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/msssystem1/Knots_sample.mat
ans =
/users/msssystem1/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.527331 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)   539  Knots    1
 2 KnotTime(msec)   129  Knots    0
 3 KnotTime(msec)   200  Knots    1
 4 KnotTime(msec)  1620  Knots   13
 5 KnotTime(msec)    39  Knots    6
 6 KnotTime(msec)   299  Knots   18
 7 KnotTime(msec)   530  Knots    7
 8 KnotTime(msec)   110  Knots    8
 9 KnotTime(msec)   159  Knots   16
10 KnotTime(msec)   560  Knots    6
11 KnotTime(msec)   450  Knots   21
12 KnotTime(msec)  2529  Knots   62
13 KnotTime(msec)    40  Knots    0
14 KnotTime(msec)  1029  Knots   46
15 KnotTime(msec)   350  Knots   40
16 KnotTime(msec)  2740  Knots  102
17 KnotTime(msec)   710  Knots   25
18 KnotTime(msec)   470  Knots   35
19 KnotTime(msec)   670  Knots    2
20 KnotTime(msec)   129  Knots    6
21 KnotTime(msec)   150  Knots    8
22 KnotTime(msec)  2389  Knots   53
23 KnotTime(msec)   629  Knots   51
24 KnotTime(msec)   230  Knots   40
25 KnotTime(msec)    29  Knots    0
26 KnotTime(msec)   129  Knots   10
27 KnotTime(msec)   120  Knots    9
28 KnotTime(msec)   230  Knots   33
29 KnotTime(msec)   190  Knots   16
30 KnotTime(msec)   340  Knots   29
31 KnotTime(msec)   309  Knots   25
32 KnotTime(msec)  1790  Knots   93
33 KnotTime(msec)  1659  Knots   61
34 KnotTime(msec)   490  Knots    8
35 KnotTime(msec)  2560  Knots   75
36 KnotTime(msec)    59  Knots    6
37 KnotTime(msec)   490  Knots   68
38 KnotTime(msec)   240  Knots   12
39 KnotTime(msec)    50  Knots   10
40 KnotTime(msec)  1580  Knots   37
41 KnotTime(msec)    80  Knots    0
42 KnotTime(msec)  1060  Knots    8
43 KnotTime(msec)   280  Knots   17
44 KnotTime(msec)  1120  Knots   22
45 KnotTime(msec)    79  Knots    9
46 KnotTime(msec)   430  Knots   10
47 KnotTime(msec)   120  Knots    7
48 KnotTime(msec)    59  Knots    6
49 KnotTime(msec)   340  Knots   17
50 KnotTime(msec)    70  Knots    4
Sum KnotTime 30620  msec
Knot Score    1159.00
Cody Maximum allowed Elapsed time is approximately 53 seconds
Elapsed time is 36.343058 seconds.