How to make a matrix only with 2 types of numbers randomly

2 Ansichten (letzte 30 Tage)
Hello,
It may sound a silly question but i cannot think in the desired solution. I need to make a matriz 1:24 only with values that might be 5 or 10? How can i make it randomly?
Example of the desired solution: [10 5 10 5 5 5 10 10 5 10 10 10 10 10 10 5 5 5 5 5 10 5 10 10]

Akzeptierte Antwort

Wayne King
Wayne King am 18 Dez. 2012
Bearbeitet: Wayne King am 18 Dez. 2012
x = rand(24,1);
y = zeros(size(x));
y(x<0.5) = 10;
y(x>0.5) = 5;
The above gives you 10's and 5's occurring with equal probability.
  1 Kommentar
Jan
Jan am 18 Dez. 2012
Bearbeitet: Jan am 18 Dez. 2012
Faster and avoid the (rare) bug when x==0.5:
x = rand(24,1);
y = repmat(5, size(x));
y(x<0.5) = 10;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 18 Dez. 2012
Here's another way:
a = 5 * (randi(2, 1, 24)-1) + 5
  3 Kommentare
André Pacheco
André Pacheco am 18 Dez. 2012
Bearbeitet: André Pacheco am 18 Dez. 2012
Thanks it worked ;) How about if i wanted to have numbers 3 types of numbers? -100, 0 and 100?
Oh nvm, i picked up in ur solution and adapt it to my situation. so it would come: a = (randi(3, 1, 24)-2)*100
Thanks a lot ;)
Image Analyst
Image Analyst am 18 Dez. 2012
If you have the Image Processing Toolbox you can use the new imquantize() function.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by