oversampling an array randomly

17 visualizaciones (últimos 30 días)
Ahmed Abdulla
Ahmed Abdulla el 1 de Sept. de 2021
Comentada: Chunru el 1 de Sept. de 2021
I have an array that contains 300 observations, and i would like to oversample this array to 472 observation. but i would this to be done randomly (randomly pick 172 observations and duplicate them). I've been looking online but with no luck

Respuesta aceptada

Chunru
Chunru el 1 de Sept. de 2021
a = randn(300, 1); % original data
idx = randperm(300, 172); % randomly pick 172 from 300
a1 = [a; a(idx)];
whos
Name Size Bytes Class Attributes a 300x1 2400 double a1 472x1 3776 double idx 1x172 1376 double
  2 comentarios
Ahmed Abdulla
Ahmed Abdulla el 1 de Sept. de 2021
Thank you thats great, I have a follow up question. If I wanted to oversample more than double the number of observations for example oversample this 300 observation array to 771 observations for example is that possible
For my current question this is sooo perfect thank youuu
Chunru
Chunru el 1 de Sept. de 2021
If you want to ensure that original 300 are always included and addtional 471 are randomly sampled, you can do the following:
a = randn(300, 1); % original data
idx = randi([1 300], [471 1]); % 471 random numbers btw 1 and 300
a1 = [a; a(idx)];
whos
Name Size Bytes Class Attributes a 300x1 2400 double a1 771x1 6168 double idx 471x1 3768 double

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

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by