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 199726

Submitted on 2 Feb 2013 by Khaled Hamed

Correct

46Size
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.

Test Suite

Test
Code Input and Output
1
Pass
 
%%
% Test to make sure there are no for loops
fid = fopen('interp_v_at_d.m');
text = fread(fid)';
fclose(fid);
assert( isempty( strfind( text, 'for' ) ) )

                    
2
Pass
 
%%
% Test to make sure there are no while loops
fid = fopen('interp_v_at_d.m');
text = fread(fid)';
fclose(fid);
assert( isempty( strfind( text, 'while' ) ) )

                    
3
Pass
 
%%
% Test to make sure it works
m = 1;
z = cat(3,zeros(m),sort(rand([m,m,10]),3),ones(m));
v = randn([m,m,12]);
d = rand();
v2 = interp_v_at_d(z,v,d);
v2_correct = zeros(m,m);
for i = 1:m
    for j = 1:m
        v2_correct(i,j) = interp1(squeeze(z(i,j,:)),squeeze(v(i,j,:)),d);
    end
end
assert( isequal( v2_correct, v2 ) );

                    
4
Pass
 
%%
% Test to make sure it works
m = 5;
z = cat(3,zeros(m),sort(rand([m,m,10]),3),ones(m));
v = randn([m,m,12]);
d = rand();
v2 = interp_v_at_d(z,v,d);
v2_correct = zeros(m,m);
for i = 1:m
    for j = 1:m
        v2_correct(i,j) = interp1(squeeze(z(i,j,:)),squeeze(v(i,j,:)),d);
    end
end
assert( isequal( v2_correct, v2 ) );

                    
5
Pass
 
%%
% Test to make sure it works
m = 10;
z = cat(3,zeros(m),sort(rand([m,m,10]),3),ones(m));
v = randn([m,m,12]);
d = rand();
v2 = interp_v_at_d(z,v,d);
v2_correct = zeros(m,m);
for i = 1:m
    for j = 1:m
        v2_correct(i,j) = interp1(squeeze(z(i,j,:)),squeeze(v(i,j,:)),d);
    end
end
assert( isequal( v2_correct, v2 ) );

                    
6
Pass
 
%%
% Test to make sure it works
m = 25;
z = cat(3,zeros(m),sort(rand([m,m,10]),3),ones(m));
v = randn([m,m,12]);
d = rand();
v2 = interp_v_at_d(z,v,d);
v2_correct = zeros(m,m);
for i = 1:m
    for j = 1:m
        v2_correct(i,j) = interp1(squeeze(z(i,j,:)),squeeze(v(i,j,:)),d);
    end
end
assert( isequal( v2_correct, v2 ) );

                    
7
Pass
 
%%
% Test to make sure it works
m = 100;
z = cat(3,zeros(m),sort(rand([m,m,10]),3),ones(m));
v = randn([m,m,12]);
d = rand();
v2 = interp_v_at_d(z,v,d);
v2_correct = zeros(m,m);
for i = 1:m
    for j = 1:m
        v2_correct(i,j) = interp1(squeeze(z(i,j,:)),squeeze(v(i,j,:)),d);
    end
end
assert( isequal( v2_correct, v2 ) );