Как сгенерировать случайную вещественную симметричную квадратную матрицу с равномерно распределенными элементами - PullRequest
6 голосов
/ 17 марта 2012

Я хотел бы сгенерировать случайную вещественную симметричную квадратную матрицу с элементами, равномерно распределенными между 0 и 1. Моя попытка: a = rand(5); b = a + a.'

Меня беспокоит то, что хотя матрица а распределена равномерно в соответствии с документациейhttp://www.mathworks.com.au/help/techdoc/ref/rand.html матрица b может не совпадать, поскольку среднее из двух случайных чисел может не совпадать с исходным числом.

Я пытался использовать hist(a); hist(b), но не уверен, как интерпретировать полученный график,РЕДАКТИРОВАТЬ: Согласно Oli матрица b больше не является равномерно распределенным, есть ли способ сделать это таким образом?

Ответы [ 2 ]

14 голосов
/ 17 марта 2012

Нет, если вы сделаете это, b не будет распределено равномерно; он будет иметь треугольное распределение .

Как насчет этого:

a = rand(5);
b = triu(a) + triu(a,1)';

где triu() занимает верхнетреугольную часть матрицы.

2 голосов
/ 17 марта 2012

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

a=rand(5);
b=triu(a).'+triu(a,1);
...