2016-03-30 1 views
-1

Я хотел знать, как я могу случайным образом помещать числа (до 10 чисел) в матрицу. Числа будут варьироваться от 1 до 10.Случайно добавляйте числа в нулевую матрицу N x M

Я начинаю с A = zeros(5,8), а затем случайным образом размещаю 10 случайных чисел вокруг матрицы.

Пример матрицы:

enter image description here

+0

В любом месте от 0 до 10 случайных чисел или ровно 10? Как распределяются случайные числа? – mikkola

+1

'A = randi (10, [5 8])'? – Amro

+0

@Amro, спасибо за вашу помощь !. числа распределены случайным образом, и я хотел заменить ровно 10 нулей. Это всего лишь образец теста, так как моя матрица будет намного больше (1024, N), где N является переменной, а число ненулевых записей будет 20. В конечном итоге я пытаюсь создать 20-разреженную матрицу. Благодарю. – Joe

ответ

3
N=20;       %// number of columns 
M=1024;       %// number of rows 
NumRand = 20;     %// number of random numbers 
RandomScalars = rand(NumRand,1); %// random numbers 
MyMatrix= sparse(M,N);   %// initialise matrix 
Idx = randperm(M*N,NumRand);  %// get indices to be filled 
MyMatrix(Idx) = RandomScalars; %// fill indexed places 

В основном вы используете randperm, чтобы создать определенное количество linear indices индексировать вашу матрицу. Просто разместите там нужные номера, и все готово.