How to shuffle two matrices in a consistent manner

10 views (last 30 days)
I am using the fisher iris data set:
load fisheriris
X = meas
Y = species
P = randperm(length(X));
X = X(P);
Y = Y(P);
I want to shuffle the data such that if the first entry in X is [5.1 3.5 1.4 0.2] and it's corresponding Y is ['setosa'] then if that X entry is shuffled to say the 30th row, then the same corresponding Y entry is also shuffled to the 30th row.
Currently the code seems to work for Y but returns X as a row vector of 150 columns which makes sense per the documentation but I don't know how to change it to achieve my workflow. Any help would be great, thanks.

Accepted Answer

Jan on 20 Oct 2021
I assume, X is a matrix and you want to shuffle the rows. Then:
X = X(P, :);
% ^

More Answers (0)




Community Treasure Hunt

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

Start Hunting!

Translated by