# How can I find a connected path on a matrix by Random Search?

2 views (last 30 days)

Show older comments

Hello

I have a matrix . I want to find a connected path of elements from up to button. I want to do it by random search. As I said I want connected path ,then if it selects element [i,j] in row i , in the next row (i+1) it should select from column j-1 or j or j+1. I want to do it by random search.

I will appreciate your help.

##### 0 Comments

### Accepted Answer

### More Answers (1)

Image Analyst
on 27 May 2014

##### 6 Comments

Image Analyst
on 27 May 2014

Here I make a matrix that has a roughly "S" shaped path. Then I run rifat's code on it:

function test

clc;

mat = [...

0 0 0 1 1 1 0

0 0 1 0 0 0 0

0 1 0 0 0 0 0

0 0 1 1 1 0 0

1 0 0 0 1 0 0

0 1 1 0 0 1 0

0 0 0 1 1 1 0

0 0 0 0 0 0 0]

randSelection(mat)

function[]= randSelection(mat)

[r c]=size(mat);

list=1:c;

for row=1:r

col=list(1 + floor(rand() * length(list)));

l1=col-1;

l2=col+1;

if l1<1

l1=1;

end

if l2>c

l2=c;

end

list=l1:l2;

mat(row,col)

end

Save all of the above code (both functions) in test.m and run it and you'll get this:

mat =

0 0 0 1 1 1 0

0 0 1 0 0 0 0

0 1 0 0 0 0 0

0 0 1 1 1 0 0

1 0 0 0 1 0 0

0 1 1 0 0 1 0

0 0 0 1 1 1 0

0 0 0 0 0 0 0

ans =

0

ans =

0

ans =

0

ans =

1

ans =

1

ans =

0

ans =

1

ans =

0

Now if that's what you want, fine, but I'm just not getting it. I don't see anything that describes the location of the pixels (elements) on the "S" shaped path. I would think the path would be a list of 16 (row, column) coordinates, not a list of 8 zeros or ones (not even really a list since they're not in the same array). But I'm glad it's working for you. I don't need to understand it - you do and that's all that counts.

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!