使用 MATLAB 生成随机多项式

Generate random polynomials with MATLAB

我想生成参数为 (n,m) 的随机二进制多项式。

n是要生成的多项式的个数 m是每个多项式的元素个数。

同时我需要它的多项式是唯一的。 而且我还需要排除所有元素都为零的结果。

例如 n=3m=3 我正在寻找类似的东西 [1 0 1] [1 0 0] [1 1 1].

mat lab 中有没有什么命令可以用来得到上面的结果??如果可能的话,我也想避免 for 循环!!

编辑:我发现命令 unique(rand(n,m)>=0.5,'rows') 可以完成这项工作。但这并不能保证结果[0 0 0]会被排除

有什么想法吗?

您的每个多项式都可以解释为 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';