Split a table in two different tables

2 visualizaciones (últimos 30 días)
Rachele Franceschini
Rachele Franceschini el 1 de Sept. de 2021
Comentada: Walter Roberson el 1 de Sept. de 2021
Hi, Can You help me?
I have a table C. I would like to split in 2 tables. In table 1 there is 30% of the data (chosen randomly) and in the second table there is the 70% of the data.
Do you have a tips?

Respuesta aceptada

Walter Roberson
Walter Roberson el 1 de Sept. de 2021
In the case that you want the "30%" to be as exact as round-off will permit:
r = height(C);
ridx = randperm(r);
n1 = floor(r * .3);
n2 = r - n1;
C1 = C(sort(ridx(1:n2)),:);
C2 = C(sort(ridx(n2+1:end),:));
In the case that 30% should be statistical:
r = height(C);
mask = rand(r,1) <= 0.3;
C1 = C(mask,:);
C2 = C(~mask,:);
  2 comentarios
Rachele Franceschini
Rachele Franceschini el 1 de Sept. de 2021
Thank you so much!
I tried both your code. The first, I have error, matlab didn't recognize the function "sort".
But the second code, it is perfect. Thank you so much!!!
Walter Roberson
Walter Roberson el 1 de Sept. de 2021
In the first one,
C2 = C(sort(ridx(n2+1:end)),:);
) was in the wrong place.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by