Filter löschen
Filter löschen

How to "partner" 2 matrixes

1 Ansicht (letzte 30 Tage)
Hugo Matias
Hugo Matias am 30 Nov. 2018
Kommentiert: Guillaume am 2 Dez. 2018
The matrix X is randomly shuffled, how does Y follow up that shuffle?
i.e:
X=[4 7 1 9;
3 0 6 8]
Y=[32 6 4 21;
77 89 0 2]
after the shuffle:
X=[3 9 4 6;
1 7 8 0]
Y=[77 21 32 0;
4 6 2 89]

Akzeptierte Antwort

Guillaume
Guillaume am 30 Nov. 2018
X = [4 7 1 9;
3 0 6 8]
Y = [32 6 4 21;
77 89 0 2]
newX = [3 9 4 6;
1 7 8 0]
[found, where] = ismember(newX, X);
assert(all(found(:)), 'some elements of newX are not present in X')
newY = Y(where)
  3 Kommentare
Hugo Matias
Hugo Matias am 1 Dez. 2018
Bearbeitet: Guillaume am 2 Dez. 2018
Hi, how do I do the same thing but instead of that this:
(imagine "a" as a number)
How do I do this?
X=[4 7 1 0;
3 0 6 8]
Y=[32 6 4 21;
77 89 0 2]
X(X==0)=a;
after the alteration:
X=[4 7 1 a;
3 a 6 8]
Y=[ 32 6 4 a;
77 a 0 2];
Guillaume
Guillaume am 2 Dez. 2018
Keep the list of elements you're going to replace (i.e. the logical array X == 0) so that you can use for Y as well:
X=[4 7 1 0;
3 0 6 8]
Y=[32 6 4 21;
77 89 0 2]
toreplace = X == 0;
X(toreplace) = a;
Y(toreplace) = a;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

madhan ravi
madhan ravi am 30 Nov. 2018
Bearbeitet: madhan ravi am 30 Nov. 2018
X=[4 7 1 9;
3 0 6 8]
idx=randsample(1:numel(X),numel(X));
shuffled_X=reshape(X(idx),size(X,1),[])
Y=[32 6 4 21;
77 89 0 2]
shuffled_Y=reshape(Y(idx),size(Y,1),[])
command window:
>> COMMUNITY
X =
4 7 1 9
3 0 6 8
shuffled_X =
1 0 3 7
8 9 4 6
Y =
32 6 4 21
77 89 0 2
shuffled_Y =
4 89 77 6
2 21 32 0
>>
  1 Kommentar
Hugo Matias
Hugo Matias am 30 Nov. 2018
I didn't mean shuffled like that, sorry!
I mean I change the numbers positions of the matrix X
and matrix Y will replicate the movements

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by