Cody

# Problem 378. Inhomogenous Depth Scale Interpolation

Solution 1656218

Submitted on 22 Oct 2018
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status 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   Fail
% 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 ) );

Index in position 3 exceeds array bounds (must not exceed 12). Error in interp_v_at_d (line 4) v2 = v(:,:,n1) + (d-z(n1))/(z(n2)-z(n1))*(v(:,:,n2)-v(:,:,n1)); Error in Test4 (line 6) v2 = interp_v_at_d(z,v,d);

5   Fail
% 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 ) );

Index in position 3 exceeds array bounds (must not exceed 12). Error in interp_v_at_d (line 4) v2 = v(:,:,n1) + (d-z(n1))/(z(n2)-z(n1))*(v(:,:,n2)-v(:,:,n1)); Error in Test5 (line 6) v2 = interp_v_at_d(z,v,d);

6   Fail
% 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 ) );

Index in position 3 exceeds array bounds (must not exceed 12). Error in interp_v_at_d (line 4) v2 = v(:,:,n1) + (d-z(n1))/(z(n2)-z(n1))*(v(:,:,n2)-v(:,:,n1)); Error in Test6 (line 6) v2 = interp_v_at_d(z,v,d);

7   Fail
% 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 ) );

Index in position 3 exceeds array bounds (must not exceed 12). Error in interp_v_at_d (line 4) v2 = v(:,:,n1) + (d-z(n1))/(z(n2)-z(n1))*(v(:,:,n2)-v(:,:,n1)); Error in Test7 (line 6) v2 = interp_v_at_d(z,v,d);