N = 30000; %// length of your vectors
I = 50; %// number of instances
v = rand(I, N);
В приведенном выше примере вы создадите матрицу, в которой каждая строка представляет собой один вектор. Случайные числа генерируются с равномерным распределением (для распределения Гаусса используйте randn
).
Если вам нужно создать каждый экземпляр отдельно, используйте цикл:
for i=1:I
v = rand(1, N);
%// do something with v
end
Но я бы не использовал это на вашем месте (это медленнее и ИМХО менее понятно).
EDIT :
Относительно вашего вопроса под ответом Мау:
Нет, вам не нужно индексировать его самостоятельно. Пусть Матлаб сделает это за вас.
Например, если вам нужно повторить следующую операцию 50 раз:
x1 = sigma*y + beta * vect1;
...
x50 = sigma*y + beta * vect50;
при условии, что y
- это вектор размером 1x30000, вы можете вычислить его в одну строку:
X = sigma*repmat(y, 50, 1) + beta * rand(50, 30000);
Объяснение:
каждая строка представляет собой один вектор, который вы хотите вычислить:
X(1,:) = x1;
...
X(50,:) = x50;
repmat(y,50,1)
повторяет ваш y
вектор 50 раз в первом измерении (строки)