2016-10-27 3 views
0

Я пытаюсь создать случайное целое число в диапазоне от -2 до 5 с помощью round и rand. Я могу генерировать случайное целое число, но всегда возвращает отрицательное значение и нуль.Генерация случайного целого числа между отрицательным и положительным диапазоном в MATLAB

round(rand(1)*-5) 
+0

«возвращает отрицательное значение и ноль». Это потому, что вы умножаете число от 0 до 1 на отрицательное число. Выход всегда будет отрицательным. – TroyHaskin

+0

Что мне делать? – PRCube

ответ

0

Использование Randi

r = randi([-2 5],1) 

rand

И если вы хотите сделать это только с помощью rand и round Попробуйте это: r = round(rand(1)*7 - 2);

0

Heres также возможный способ сделать это :

% generate 1000 random integers between -2 and 5 
R = ceil(rand(1000,1)*8)-3; 

% display MIN/MAX 
disp(min(R)); 
disp(max(R)); 
+0

Обратите внимание, что это работает, потому что @thomas использует 'ceil', и поэтому ему нужно увеличить коэффициент на 1 (поэтому используется 8 вместо 7). Это работает, потому что rand() никогда не генерирует true 0 или 1. В противном случае, если генерируется true 0, эта формула иногда (с малой вероятностью) генерирует число -3. –

Смежные вопросы