Matlab - Extracción 10% de una base de datos en matlab

 
Vista:
Imágen de perfil de Laura Sánchez
Val: 6
Ha aumentado su posición en 10 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Extracción 10% de una base de datos en matlab

Publicado por Laura Sánchez (3 intervenciones) el 29/09/2017 22:59:13
Buenas tardes. Necesito elegir aleatoriamente el 10% de muestras de cada clase y crear un nuevo set de datos. En este caso sería de la Base de Datos Iris_dataset. y serían 3 clases (versicolor, virginica, setosa). Se que en total son 150, cada clase consta de 50 datos.

Genero aletaoriamente 5 muestras de cada clase así.

rc1 = randi([1 50],1,5);
rc2 = randi([51 100],1,5);
rc3 = randi([101 150],1,5)

Siendo rc1 la clase setosa que va de 1 a 50, después rc2 que es versicolor que va desde 51 al 100 y por último rc3 que es virginica que va de 101 a la 150.

Pero, no se cómo generar la nueva base de datos. Podrían por favor ayudarme. Muchísimas gracias. Que tengan un maravilloso día!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Extracción 10% de una base de datos en matlab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 29/09/2017 23:57:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
>> Cs=[];
rc1 = randi([1 50],1,5)
n1=round(10/100*length(rc1))
Cs=[Cs randsample(rc1,n)]
 
rc2 = randi([51 100],1,5);
n2=round(10/100*length(rc2))
Cs=[Cs randsample(rc2,n)]
 
rc3 = randi([101 150],1,5)
n3=round(10/100*length(rc2))
Cs=[Cs randsample(rc3,n)]
rc1 =
     2    23    33    27    19
n1 =
     1
Cs =
    19
n2 =
     1
Cs =
    19    94
rc3 =
   133   104   121   134   147
n3 =
     1
Cs =
    19    94   147


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
>> Cs=[];
rc1 = randi([1 50],1,5)
n1=round(10/100*length(rc1))
Cs=[Cs randsample(rc1,n)]
 
rc2 = randi([51 100],1,5);
n2=round(10/100*length(rc2))
Cs=[Cs randsample(rc2,n)]
 
rc3 = randi([101 150],1,5)
n3=round(10/100*length(rc2))
Cs=[Cs randsample(rc3,n)]
rc1 =
    38    21    49    50    44
n1 =
     1
Cs =
    21
n2 =
     1
Cs =
    21    95
rc3 =
   145   123   111   145   139
n3 =
     1
Cs =
    21    95   139


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar