MATLAB Answers

PK

To pick a number randomly

Asked by PK
on 11 Sep 2012

Can some one help in picking a number from a matrix for example i have matrix of the form A=[1 2 3 4 5; 6 6 7 5 8 ; 12 4 5 6 9] and i require to pick only one element randomly from the matrix but should not be the same element every time.

  0 Comments

Products

No products are associated with this question.

2 Answers

Answer by Andrei Bobrov
on 11 Sep 2012
Edited by Andrei Bobrov
on 11 Sep 2012
 Accepted answer

try this is code

A=[1 2 3 4 5; 6 6 7 5 8 ; 12 4 5 6 9];
a = unique(A);
b = a(histc(A(:),a) < 2);
idx = randperm(numel(b));
out = b(idx(1));

  1 Comment

PK
on 11 Sep 2012

its working fine can u please elaborate the working of code


Answer by Rene
on 11 Sep 2012
Edited by Rene
on 11 Sep 2012

The answer of andrei does not give a truly random number since he uses the unique command.

This will:

A=[1 2 3 4 5; 6 6 7 5 8 ; 12 4 5 6 9];

B = round((length(A(:))-1)*rand+1);

A(B)

ps. as far as rand returns a truly random number

  2 Comments

PK
on 12 Sep 2012

this works fine and any method to select the numbers accordingly from first row first element to third row fifth element one after the other continuously in the manner of 1 2 3 4 5 6 6 7 5 8 12 4 5 6 9

Andrei Bobrov
on 12 Sep 2012
A2 = reshape(A',[],1);
out = A2(randperm(numel(A),1));

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today