在MATLAB中创建多维随机数
我有一个包含200个条目的四维数据集。我将在这个数据集中生成一个随机值。我声明了以下变量:在MATLAB中创建多维随机数,matlab,matrix,random,Matlab,Matrix,Random,我有一个包含200个条目的四维数据集。我将在这个数据集中生成一个随机值。我声明了以下变量: mu = median(Input,2)'; % find the median of Input as MU sigma = [2 1; 1 4]; % SIGMA Data = mvnrnd(mu,sigma,10)'; % Generate random number with "mvnrnd" function 但是,MATLAB给了我一个错误,如下所示: SIGMA must
mu = median(Input,2)'; % find the median of Input as MU
sigma = [2 1; 1 4]; % SIGMA
Data = mvnrnd(mu,sigma,10)'; % Generate random number with "mvnrnd" function
但是,MATLAB给了我一个错误,如下所示:
SIGMA must be a square matrix with size equal to the number of columns in MU, or a row vector with length equal to the number of columns in MU.
我认为,“mvnrnd”函数生成的数据不能超过2D
你能告诉我吗?错误告诉你,
mu
不是一个行向量,这是因为你取行的中间值,只需将它转置:
mu = median(Input,2).';
下面是创建半正定矩阵的一种方法:
temp = rand(numel(mu));
sigma = temp.'*temp;
Data = mvnrnd(mu,sigma ,100);
或者,您可以将sigma
定义为行向量:
sigma = [2 1 1 4];
我不知道你如何选择你的
sigma
,但是上面的例子告诉你,用mvnrnd
“数据(1,:)=mvnrnd(mu(1,:),sigma,10)”可以创建多于二维的多变量正态分布依此类推,我这样做了,但错误变为:SIGMA必须是一个平方矩阵,其大小等于MU中的列数,或者是一个行向量,其长度等于MU中的列数features@BlueBit请参阅我的编辑,了解一个可处理二维以上图形的简单案例