2014-02-06 4 views

ответ

-1

Вы можете использовать

  • randperm Любая перестановка
+0

Это даст только один ряд и без повторяющихся элементов. В примере OP есть строки с повторяющимися элементами –

3

Использование randi для создания случайных значений индекса в свой вектор возможных значений:

x = [-3 -1 1 3] 
y = randi(length(x),[5 5]); 
y = x(y); 
1

Хотя @nkjt's answer, вероятно, путь к идти, если у вас есть Statistics Toolbox можно упростить немного используя randsample (с заменой):

result = NaN(3,6); %// define required size 
result(:) = randsample([-3 -1 1 3], numel(result), true); 

Или, если исходные числа равномерно распределены как в вашем примере, вы можете решить эту проблему в одной строке:

result = 2*randi(4,[3 6])-5; %// "2" and "5" as per your original values 
Смежные вопросы