Change random values in the matrix of 234*10000

조회 수: 14(최근 30일)
Harsh Rob
Harsh Rob 2020년 2월 7일
댓글: Harsh Rob 2020년 2월 7일
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
KSSV 2020년 2월 7일
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
Harsh Rob
Harsh Rob 2020년 2월 7일
Thanks KSSV and Bhaskar. It works for me now.

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

추가 답변(1개)

Bhaskar R
Bhaskar R 2020년 2월 7일
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
Harsh Rob
Harsh Rob 2020년 2월 7일
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.

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

Community Treasure Hunt

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

Start Hunting!

Translated by