2013-07-15 2 views
0

У меня есть следующие matrix X и Column vector H:Как добавить случайное число к каждому матричному элементу в matlab?

X=[ 1 2 3; 2 3 4; 3 4 5]; 
H=[1; 2 ;3]; 
m=[X(:,1) H(:) X(:,2) H(:) X(:,3) H(:)]; 

Как добавить небольшое случайное число ко всем элементам м, сохраняя при этом каждый столбец H в матрице м то же самое после добавления случайного числа?

+1

Ваш вопрос еще не совсем ясен. Вы хотите добавить случайный номер к каждому элементу, сохраняя каждый столбец H * таким же, каким он был до того, как вы добавили случайное число *, или вы хотите, чтобы каждый столбец H * был таким же, как и любой другой столбец H *, но отличался до того, как вы добавили случайное число. Это поможет, если вы предоставили некоторые данные до/после примера. –

+0

Второй. –

ответ

2

Вы должны добавить случайные числа отдельно, а затем построить свою комбинированную матрицу.

Xnew = X + rand(size(X)); % replace 'rand' with the random numbers you want 
Hnew = H + rand(size(H)); 
mnew = [Xnew(:,1) Hnew(:) Xnew(:,2) Hnew(:) Xnew(:,3) Hnew(:)]; 
+0

Спасибо Крису. Это решит проблему. –

+1

Не следует, чтобы вторая строка была «Hnew = H + rand (size (H)); – Dan

+0

@ Дань, да, спасибо! –

0

вы можете добавить случайный X вместо m

rX = X + rand(size(X)); % add uniformly distributed random numbers in [0,1] interval 
m=[rX(:,1) H(:) rX(:,2) H(:) rX(:,3) H(:)]; 
Смежные вопросы