How to rearrange matrix with the given matrix?

3 views (last 30 days)
Hi
let consider, we have a given matrix.
Initial given matrix:
columns
rows 2 5
4 3
1 6
7 8
I want to reshape or rearrange matrix.(it can return any matrix but it should not have pair (2,5),(4,3),(1.6),(7,8)). But should able to re-generate for test validity. The matrix which i want or expected is
columns
rows 2 3/1/6/7/8 (any value but not 5) (let i select 6)
4 5/1/7/8 (any value but not 3, (2,6)) (let I select 8)
1 3/5/7 (any value but not 6,(2,6),(4,8)) (let I select 5)
7 3 (only one value left )
So the above matrix look like:
columns
rows 2 6
4 8
1 5
7 3
  1 Comment
Rik
Rik on 9 Jan 2022
There is no guarantee there is a solution for every input.
What did you try yourself?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Jan 2022
circshift() the second column.
Or use trial and error:
V = [5; 3; 6; 8];
pV = perms(V);
valids = pV(all(pV ~= V.',2), :)
valids = 9×4
8 6 3 5 8 6 5 3 8 5 3 6 6 8 3 5 6 8 5 3 6 5 8 3 3 8 5 6 3 6 8 5 3 5 8 6

More Answers (0)

Community Treasure Hunt

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

Start Hunting!