Random pick data by label

1 view (last 30 days)
Hg
Hg on 7 Aug 2015
Edited: Azzi Abdelmalek on 7 Aug 2015
I have a data array (13x5). The last column is the class (1-4) of each data. How do I randomly pick n-number of data from each class? Let say 2 data from each class.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 7 Aug 2015
Edited: Azzi Abdelmalek on 7 Aug 2015
A=[randi(9,100,4) randi([1 4],100,1)] % Example
[ii,jj,kk]=unique(A(:,5))
m=accumarray(kk,(1:numel(kk))',[],@(x) {x'})
out=cell2mat(cellfun(@(x) A(x(randperm(numel(x),2)),:),m,'un',0))

More Answers (0)

Tags

Products

Community Treasure Hunt

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

Start Hunting!