Azzera filtri
Azzera filtri

randomly divide a matrix

8 visualizzazioni (ultimi 30 giorni)
baran
baran il 21 Mag 2017
Commentato: Star Strider il 6 Giu 2021
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

Risposta accettata

Star Strider
Star Strider il 21 Mag 2017
For your matrix:
row_idx = randperm(16435, 11504)';
To illustrate:
example = randperm(10, 7)'
example =
5
8
2
4
7
3
10
  4 Commenti
Onurcan BAL
Onurcan BAL il 6 Giu 2021
Thanks for both question and this explanation!
Star Strider
Star Strider il 6 Giu 2021
My pleasure!
(A Vote would be appreciated!)
.

Accedi per commentare.

Più risposte (1)

MathReallyWorks
MathReallyWorks il 21 Mag 2017
Modificato: MathReallyWorks il 21 Mag 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.

Categorie

Scopri di più su Statistics and Machine Learning Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by