我有一个 200 x 200 的数据矩阵(关于 x=y 对称),其中矩阵中每个值的位置很重要。矩阵填充了 -0.2 和 0.8 之间的值,非正态分布。
我正在尝试从中生成一个随机模型,以测试通过对 200 x 200 矩阵中的值进行一些操作得到的结果变量是否显着。我认为最好的方法是定义值的分布,然后从中创建一个随机矩阵。我认为这可能比随机排列矩阵上三角形中的值更好(并且更快)?有人知道怎么做吗?我将需要对数千个具有不同非高斯分布的矩阵重复此操作,因此将不胜感激快速解决方案!谢谢!
我有一个 200 x 200 的数据矩阵(关于 x=y 对称),其中矩阵中每个值的位置很重要。矩阵填充了 -0.2 和 0.8 之间的值,非正态分布。
我正在尝试从中生成一个随机模型,以测试通过对 200 x 200 矩阵中的值进行一些操作得到的结果变量是否显着。我认为最好的方法是定义值的分布,然后从中创建一个随机矩阵。我认为这可能比随机排列矩阵上三角形中的值更好(并且更快)?有人知道怎么做吗?我将需要对数千个具有不同非高斯分布的矩阵重复此操作,因此将不胜感激快速解决方案!谢谢!
不太确定你在问什么,但我想你可以看看random()
统计工具箱中的函数:
>> help random
RANDOM 从指定分布生成随机数组。R = RANDOM(NAME,A) 返回从 NAME 指定的具有参数值 A 的单参数概率分布中选择的随机数数组。
R = RANDOM(NAME,A,B) or R = RANDOM(NAME,A,B,C) returns an array of random numbers chosen from a two- or three-parameter probability distribution with parameter values A, B (and C). The size of R is the common size of the input arguments. A scalar input functions as a constant matrix of the same size as the other inputs. R = RANDOM(NAME,A,M,N,...) or R = RANDOM(NAME,A,[M,N,...]) returns an M-by-N-by-... array of random numbers for a one-parameter distribution. Similarly, R = RANDOM(NAME,A,B,M,N,...) or R = RANDOM(NAME,A,B,[M,N,...]), and R = RANDOM(NAME,A,B,C,M,N,...) or R = RANDOM(NAME,A,B,C,[M,N,...]), return an M-by-N-by-... array of random numbers for a two- or three-parameter distribution. NAME can be: 'beta' or 'Beta', 'bino' or 'Binomial', 'chi2' or 'Chisquare', 'exp' or 'Exponential', 'ev' or 'Extreme Value', 'f' or 'F', 'gam' or 'Gamma', 'gev' or 'Generalized Extreme Value', 'gp' or 'Generalized Pareto', 'geo' or 'Geometric', 'hyge' or 'Hypergeometric', 'logn' or 'Lognormal', 'nbin' or 'Negative Binomial', 'ncf' or 'Noncentral F', 'nct' or 'Noncentral t', 'ncx2' or 'Noncentral Chi-square', 'norm' or 'Normal', 'poiss' or 'Poisson', 'rayl' or 'Rayleigh', 't' or 'T', 'unif' or 'Uniform', 'unid' or 'Discrete Uniform', 'wbl' or 'Weibull'.
--剪辑--
从对数正态分布中生成一个由随机值组成的 N×N 矩阵,mu = 0
例如sigma = 1
,如下所示:
N = 5;
A(triu(true(N))) = random('logn', 0,1, N*(N+1)/2, 1);
A(tril(true(N))) = A(triu(true(N)));