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!