How to reshape matrix without repeating values of matrix?

2 Ansichten (letzte 30 Tage)
Hi, For example we have a matrix 4 x 2 and we have to rearrange matrix such that
columns
rows 2 5 % 2 can pair with any below value except 5 or 5 can pair with any value except 2
4 3 % 4 can pair any value below except 3 and above pair
1 6 % 1 can pair with any below value except 6 and above pairs
7 8 % 7 can pair with any below value except 8 and above pairs ( as in this case only one value will be
remains)
This logic should work on any [] x 2 matrix.
Thanks and Regards,
Sandeep

Akzeptierte Antwort

KSSV
KSSV am 6 Jan. 2022
A = [2 5
4 3
1 6
7 8];
[m,n] = size(A) ;
iwant = zeros(m,m) ;
iwant(:,1) = A(:,1) ;
for i = 1:m
idx = setdiff(1:m,i) ;
iwant(i,2:end) = A(idx,2)' ;
end
iwant
iwant = 4×4
2 3 6 8 4 5 6 8 1 5 3 8 7 5 3 6
  3 Kommentare
KSSV
KSSV am 6 Jan. 2022
I gave you all the options possible...pick any randmoly...easy:
A = [2 5
4 3
1 6
7 8];
[m,n] = size(A) ;
iwant = zeros(m,2) ;
iwant(:,1) = A(:,1) ;
for i = 1:m
idx = randsample(setdiff(1:m,i),1) ;
iwant(i,2) = A(idx,2) ;
end
iwant
iwant = 4×2
2 8 4 8 1 5 7 5
SANDEEP SINGH RANA
SANDEEP SINGH RANA am 6 Jan. 2022
In this matrix, 2 is pair with 8 and 4 is also pairing with 8. This is not required.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by