Asked by Lorenz
on 10 Jun 2013

I have a matrix A

A =

1 4 2 3 4 3 1 2 3 2 4 1 2 1 3 4

How to make different groups of two elements from this matrix? But the chosen elements (from the matrix A) have to be adjacent in the matrix A. for example A(1,1) & A(1,2) are adjacent and so they can be chosen. and A(1,1) & A(4,3) can't be chosen to make a group. I'd like to create a function which randomly choose these elements from A. And the function generates an other matrix containing the (2 by 2) different groupements randomly created. (for other examples see comment below)

thank you.

Answer by Doug Hull
on 10 Jun 2013

There are 24 four connected pairs. Three per row, three per column.

I would generate a random integer from 1-numel(A) I would generate a random direction from 1-4 (North East South West) If the starting point and direction bring you out of the matrix. Draw again.

If it is a valid pairing, subset out what you are looking for using any indexing method you prefer.

Doug

Log in to comment.

Opportunities for recent engineering grads.

Apply Today
## 3 Comments

## Azzi Abdelmalek (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/78611-how-to-have-random-groups-of-2-elements-from-a-squared-matrix#comment_154119

What is n? can you give one of expected result?

## the cyclist (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/78611-how-to-have-random-groups-of-2-elements-from-a-squared-matrix#comment_154121

Lorenz, if you read your post from the perspective of someone who has

noidea of what you want, you might realize that you have neglected to give anywhere near enough detail. Please, don't make us guess at what you really want.## Lorenz (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/78611-how-to-have-random-groups-of-2-elements-from-a-squared-matrix#comment_154126

I apologize. For example the hereover matrix A. The "function" has to generate:

Log in to comment.