2015-07-11 85 views
1

我想生成參數爲(n,m)的隨機二進制多項式。使用MATLAB生成隨機多項式

n是要生成的多項式的數量 並且m是每個多項式的元素的數量。

在同一時間,我需要它的多項式是唯一的。 而且我還需要排除所有元素等於零的結果。

例如對於n=3m=3我在尋找類似於 [1 0 1] [1 0 0] [1 1 1]的東西。

是否有任何命令在mat實驗室,我可以用來獲得上述結果?如果可能的話,我也想避免for循環!

編輯:我發現命令unique(rand(n,m)>=0.5,'rows')將完成這項工作。但這並不能保證結果[0 0 0]將被排除

有什麼想法嗎?

回答

2

你的每一個多項式可以被解釋爲1和2^m-1之間的二進制數。

%get a random subset of size n 
X=randperm(2^m-1,n); 
%convert it to a matrix 
X=dec2bin(X)-'0'; 
+0

非常感謝大家! –

+0

@霍竺:我看到了你的建議編輯,這絕對是對代碼的改進。對於這種改進,請寫評論或寫你自己的答案,編輯旨在格式錯誤,錯別字,斷開的鏈接等... – Daniel

+0

@DimitriC:我已經更新了代碼 – Daniel