Azzera filtri
Azzera filtri

Change random values in the matrix of 234*10000

1 visualizzazione (ultimi 30 giorni)
I have a matrix of 10*10 (in this example, actually the matrix is 234*10000) and I have to change the values at random locations.
I tried using the randperm function but it is able to change the values only in the beginning locations. Could someone advise on this please
X= rand(10)
shi=randperm(10,3); %For 10000 simulations and limiting the jump to go only upto 1673
Initial_X = X(shi);
X(shi) = randperm(5,length(shi)); %Change the values at these values of 'i' which is derived from the randperm function above
Final_X = X(shi);

Risposta accettata

KSSV
KSSV il 7 Feb 2020
You should follow like this:
X= rand(10)
shi=randperm(numel(X),3); %For 10000 simulations and limiting the jump to go only upto 1673
Initial_X = X;
X(shi) = rand(size(shi)); %Change the values at these values of 'i' which is derived from the randperm function above
Final_X = X;
  3 Commenti
Bhaskar R
Bhaskar R il 7 Feb 2020
X(shi) = randi([your big number limit], size(shi));
Harsh Rob
Harsh Rob il 7 Feb 2020
Thanks KSSV and Bhaskar. It works for me now.

Accedi per commentare.

Più risposte (1)

Bhaskar R
Bhaskar R il 7 Feb 2020
X= rand(10); % total locations, 10*10 = 100;
loc = randperm(numel(X), 1); % out of 100 locations i pick one random location choosen
X(loc) = rand(1); % assigning random value to randomly picked location
  1 Commento
Harsh Rob
Harsh Rob il 7 Feb 2020
No it does not work. I used the same logic. So basically, this new random number introduced should be a higher number so that I can differentiate. Also, I have to make this changes at say 10 random places in the 10*10 matrix with a bit higher values.

Accedi per commentare.

Categorie

Scopri di più su Language Fundamentals in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by