我想生成带参数(n,m)
的随机二元多项式。
n是要生成的多项式的数量 m是每个多项式的元素数。
同时我需要它的多项式是唯一的。 而且我还需要排除所有元素等于零的结果。
例如n=3
和m=3
我正在寻找类似的东西
[1 0 1] [1 0 0] [1 1 1]
。
在mat实验室中是否有任何命令可用于获得上述结果?如果可能的话,我也想避免使用for循环!!
编辑:我发现命令unique(rand(n,m)>=0.5,'rows')
将完成这项工作。但这并不能保证结果[0 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';