oversampling an array randomly

조회 수: 17 (최근 30일)
Ahmed Abdulla
Ahmed Abdulla 2021년 9월 1일
댓글: Chunru 2021년 9월 1일
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

채택된 답변

Chunru
Chunru 2021년 9월 1일
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
Ahmed Abdulla
Ahmed Abdulla 2021년 9월 1일
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 2021년 9월 1일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by