MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Johny
on 17 Nov 2013

This question was flagged by
Image Analyst

h

*No products are associated with this question.*

Answer by Walter Roberson
on 17 Nov 2013

P = []; s = size(map); [X, Y] = ndgrid(1:s(1), 1:s(2)); mask = abs(X-x) + abs(Y-y) <= 1000; mask(x,y) = false; highestground = max(map(mask)); if highestground <= map(x,y) disp('There is no higher ground to go to within 1000 steps'); return end

Walter Roberson
on 17 Nov 2013

Yup. I didn't say I was going to answer the entire question for you. The first thing you need to do is figure out where "higher ground" is that is within distance; this code does that. It only needs one small change to tell you exactly *where* the higher ground is. Have a look at max()

Answer by Image Analyst
on 17 Nov 2013

Well, the watershed transform won't work because that doesn't guarantee that the path is monotonically increasing. So see Steve's 5 part blog series on path finding: http://blogs.mathworks.com/steve/2011/11/01/exploring-shortest-paths-part-1/

You could also try doing it yourself and find an optimized path with methods like A* http://en.wikipedia.org/wiki/A* and dynamic programming http://en.wikipedia.org/wiki/Dynamic_programming#Checkerboard where you can plug in your own criteria.

## 1 Comment

## Image Analyst

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/106530#comment_180618

This is getting really bad. So many people this weekend asking us for help and then editing away their question.