使用 MATLAB 生成随机多项式
Generate random polynomials with MATLAB
我想生成参数为 (n,m)
的随机二进制多项式。
n是要生成的多项式的个数
m是每个多项式的元素个数。
同时我需要它的多项式是唯一的。
而且我还需要排除所有元素都为零的结果。
例如 n=3
和 m=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';
我想生成参数为 (n,m)
的随机二进制多项式。
n是要生成的多项式的个数 m是每个多项式的元素个数。
同时我需要它的多项式是唯一的。 而且我还需要排除所有元素都为零的结果。
例如 n=3
和 m=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';