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]

 채택된 답변

Guillaume
Guillaume 2018년 11월 30일

2 개 추천

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

Hugo Matias
Hugo Matias 2018년 11월 30일
Thank you sir
Hugo Matias
Hugo Matias 2018년 12월 1일
편집: Guillaume 2018년 12월 2일
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];
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;

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

madhan ravi
madhan ravi 2018년 11월 30일
편집: madhan ravi 2018년 11월 30일

0 개 추천

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

Hugo Matias
Hugo Matias 2018년 11월 30일
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

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

태그

질문:

2018년 11월 30일

댓글:

2018년 12월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by