2012-03-17 52 views
6

Tôi muốn tạo ra một ma trận vuông thực đối xứng ngẫu nhiên với mục phân bố đều giữa 0 và 1. My nỗ lực là: a = rand(5); b = a + a.'Làm thế nào để tạo ra một thực ma trận vuông đối xứng ngẫu nhiên với mục phân bố đều

lo lắng của tôi là trong khi ma trận a được phân bố đồng đều theo tài liệu http://www.mathworks.com.au/help/techdoc/ref/rand.html ma trận b có thể không phải vì số trung bình của hai số ngẫu nhiên có thể không giống với số gốc.

Tôi đã cố gắng sử dụng hist(a); hist(b) nhưng không chắc chắn cách diễn giải biểu đồ kết quả. EDIT: Theo ma trận Oli b không còn được phân phối đồng đều, có cách nào để thực hiện theo cách đó không?

Trả lời

14

Không, nếu bạn làm như vậy thì b sẽ không được phân phối thống nhất; nó sẽ có một số triangular distribution.

Làm thế nào về một cái gì đó như thế này:

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

nơi triu() mất phần trên-tam giác của ma trận.

+0

cảm ơn, Oli, bạn có lời khuyên nào về cách phân phối đồng đều không? – Aina

+0

@Aina: Xem câu trả lời cập nhật của tôi. –

+0

cảm ơn, Oli, do đó, sử dụng chức năng triu giữ phân bố đồng đều? Tôi chỉ cần chạy nó và hist (b) trông khác với những gì tôi đã có cho ma trận của tôi b. – Aina

2

Bạn chỉ có thể nhận được các mục được phân phối thống nhất trên một nửa ma trận.

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

cảm ơn g24l, vì vậy sau đó nó không thể có ma trận đối xứng ngẫu nhiên với các mục phân phối đồng đều? – Aina

+0

@Aina: Tôi đã nói về cách tạo ma trận. Các phần tử của ma trận được phân bố đồng đều, nhưng không phải ngẫu nhiên, và không phải là iid. –

Các vấn đề liên quan