Change random values in the matrix of 234*10000

조회 수: 3 (최근 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
Bhaskar R
Bhaskar R 2020년 2월 7일
X(shi) = randi([your big number limit], size(shi));
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.

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by