How to create NaN randomly based on specific rate in specific column

3 vues (au cours des 30 derniers jours)
amj
amj le 17 Nov 2017
Modifié(e) : amj le 17 Nov 2017
Hi,
I'm going to create NaN values in a data set. I found this basic code, but it is not specify for which column.
X = rand(10,2)
p = randperm(numel(X))
%p1 = randperm(X)
randel = p(1:5)
X(p(1:5)) = NaN
This is my code which is able to set NaN in the second column only: Y = rand(10,2) ratioNan=0.5 Y(rand(size(X(:,1)))<=ratioNan,2)=NaN
This code does not produces the result as expected. For instance, if i want to set the 50% NaN values, sometime it is created more or less than 50% of the records. How to change the code so that i will remove exactly 50% from the record specifically in the second column.

Réponse acceptée

KSSV
KSSV le 17 Nov 2017
X = rand(10,2) ;
idx = randsample(size(X,1),size(X,1)/2) ;
X(idx,:) = NaN
  1 commentaire
amj
amj le 17 Nov 2017
Modifié(e) : amj le 17 Nov 2017
Dear KSSV,
Thanks a million for your answer. I also just resolved the problem. This is my answer:
x = rand(20,2);
idx = randperm(20);
x(idx(1:5),2) = NaN

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by