Cody

# Problem 340. Find last non-zero in a given dimension

Solution 407824

Submitted on 21 Feb 2014 by J.R.! Menzinger
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 the examples BW = [0 0 0 0; 1 1 1 1; 0 1 1 0]; out_correct = [2 3 3 2]; assert(isequal(findlastindim(BW,1),out_correct)) out_correct = [0; 4; 3]; assert(isequal(findlastindim(BW,2),out_correct))

ans = 2 3 3 2 ans = 0 4 3

2   Pass
%% Test some different matrices BW = eye(10); out_correct = 1:10; assert(isequal(findlastindim(BW,1),out_correct)) assert(isequal(findlastindim(BW,2),out_correct'))

ans = 1 2 3 4 5 6 7 8 9 10 ans = 1 2 3 4 5 6 7 8 9 10

3   Pass
%% Test some different dimensions (and prevent hard-coded solutions) BW = rand(10)>0.5; assert(isequal(findlastindim(BW,3),BW)) assert(isequal(findlastindim(BW,4),BW))

ans = 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 ans = 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1

4   Pass
%% Test something in the 3rd dimension that is small enough to visualise. BW = cat(3, eye(5), fliplr(eye(5))); out_correct = [1 0 0 0 2 0 1 0 2 0 0 0 2 0 0 0 2 0 1 0 2 0 0 0 1]; assert(isequal(findlastindim(BW,3),out_correct))

ans = 1 0 0 0 2 0 1 0 2 0 0 0 2 0 0 0 2 0 1 0 2 0 0 0 1