# Change random values in the matrix of 234*10000

5 views (last 30 days)
Harsh Rob on 7 Feb 2020
Commented: Harsh Rob on 7 Feb 2020
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);

KSSV on 7 Feb 2020
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;

Harsh Rob on 7 Feb 2020
This does work for me but can we control the intensity of these new random numbers? I want them to be much bigger and not in the range of the values present already in the matrix. For example, we can have 693 or 3456 etc.
Bhaskar R on 7 Feb 2020
X(shi) = randi([your big number limit], size(shi));
Harsh Rob on 7 Feb 2020
Thanks KSSV and Bhaskar. It works for me now.

Bhaskar R on 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 Comment

Harsh Rob on 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.