selecting submatrix of like elements

1 view (last 30 days)
Bahar
Bahar on 25 Apr 2014
Commented: Bahar on 26 Apr 2014
I need to be able to search a matrix for a submatrix of like elements and then manipulate that group of like elements. For example:
A= [0 0 0 0 0; 0 1 1 0 0; 0 1 1 0 0; 0 0 0 0]
I would like to be able to get at
B= [1 1, 1 1]
and then I would like to randomly move B within A.
The purpose of this is to make a quick demo where I get some tiles to conditionally stick together during a random walk and form larger structures which in turn rotate and move randomly.

Answers (1)

Walter Roberson
Walter Roberson on 25 Apr 2014
Are the values integers? If so then using the image processing toolbox would possibly be easiest. You can use bwlabel() to find the "islands" in flexible ways, using 4-connection (must be left or right, or up or down) or 8-connection (diagonals allowed) or other custom rules. regionprops() can then give you information about the blobs including lists of coordinates.
  1 Comment
Bahar
Bahar on 26 Apr 2014
Thank you - this was actually very helpful. I can now find and move the 'islands' in my matrix. Unfortunately, the only way I can move them is 'element by element' which causes them to come apart if they hit some obstruction (as a move isnt legal unless the spot its going to is 0).
You dont happen to know of any way to move like numbers as a unit?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!