Shuffle two different lists of numbers in the same way
8 ビュー (過去 30 日間)
古いコメントを表示
I want to shuffle two vectors, both with n elements, so that they are shuffled in the same way, i.e. the corresponding elements in each are moved to the same spot. I have tried doing this by using randperm like this:
ix = randperm(n);
ShuffledVector1 = Vector1(ix);
ShuffledVector2 = Vector2(ix);
But the shuffling is not done in the same way, I know because when I run it for Vector1=Vector2, ShuffledVector1 doesn't end up equaling ShuffledVector2. Any advice?
2 件のコメント
Guillaume
2016 年 2 月 13 日
You're doing something wrong in your testing. If Vector1 == Vector2, then ShuffledVector1 == ShuffledVector2, always (with finite elements).
回答 (1 件)
Star Strider
2016 年 2 月 13 日
Maybe I’m missing something, but if ‘Vector1’ and ‘Vector2’ are different, ‘ShuffledVector1’ and ‘ShuffledVector2’ would be different as well.
Example 1:
Vector1 = randi(9, 1, 10);
Vector2 = randi(9, 1, 10);
ix = randperm(10);
ShuffeledVector1 = Vector1(ix);
ShuffeledVector2 = Vector2(ix);
Q1 = Vector1 == Vector2; % Not Equal
Q2 = ShuffeledVector1 == ShuffeledVector2; % Not Equal
Example 2:
Vector1 = randi(9, 1, 10);
Vector2 = Vector1;
ix = randperm(10);
ShuffeledVector1 = Vector1(ix);
ShuffeledVector2 = Vector2(ix);
Q1 = Vector1 == Vector2; % Equal
Q2 = ShuffeledVector1 == ShuffeledVector2; % Equal
2 件のコメント
Guillaume
2016 年 2 月 13 日
Yes, you're doing something wrong. Example 2 is true.
If you can't figure out where the problem is. Post the code you're using to test here.
参考
カテゴリ
Help Center および File Exchange で Graphics Object Programming についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!