MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# 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.

## Products

No products are associated with this question.

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

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

```A2 = reshape(A',[],1);