randomly divide a matrix
10 views (last 30 days)
Show older comments
hi, i have a 16435*25 matrix that name is input, i want to randomly divided it in 2 parts: one for train and another for validate data, that 70% of its rows randomly selected as train matrix (i.e 11504*25 matrix) and 30% of its rows randomly selected as validate matrix (i.e 4930*25), how can i do this? thanks a lot
0 Comments
Accepted Answer
Star Strider
on 21 May 2017
For your matrix:
row_idx = randperm(16435, 11504)';
To illustrate:
example = randperm(10, 7)'
example =
5
8
2
4
7
3
10
4 Comments
More Answers (1)
MathReallyWorks
on 21 May 2017
Edited: MathReallyWorks
on 21 May 2017
Hello Dear,
Use this code. I've generated a random matrix of the same order that you want. I have randomized all the rows of matrix and then I'm selecting first 11504 rows for training and rest for validation. I hope it will be helpful.
orderedArray = rand(16435,25); % Random Data %You can use your data here
shuffledArray = orderedArray(randperm(size(orderedArray,1)),:); %Randomizing the rows of matrix
t=zeros(11504,25); % Size of Train Data
v=zeros(4930,25); % Size of Validate Data
for i=1:11504
t(i,:) = shuffledArray(i,:);
end
j=1;
for i=11541:16435
v(j,:) = shuffledArray(i,:);
j=j+1;
end
Type whos t and whos v on command window, you will get to know the dimensions of train and validate data matrices.
0 Comments
See Also
Categories
Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!