MATLAB: Split data into 3 sets without repetition

databaseMATLAB

I have a dataset with size of (20132,11). I need to split it into three sets with sizes of 12132,4000 and 4000. I tried to use randsample command, but I dont know how to make this not repetition, thank you!

Best Answer

It sounds like you want to split the rows randomly. Use randperm for that:
dataset = randi([0 255], 20132, 11); %random data for demonstration
rows = randperm(size(dataset, 1));
splitdata{1} = dataset(rows(1:12132), :);
splitdata{2} = dataset(rows(12133:16132, :);
splitdata{3} = dataset(rows(16133:20132, :);