0
想象一下我們有4個矢量,V1
,V2
,nf1
和nf2
。我們需要生成n=8736
隨機數的每對(V1,V2)
,(V1,nf1)
,(V2,nf2)
和(nf1,nf2)
是歸屬關係如下:在copuland(copula隨機數)函數中的Matlab線性相關矩陣
Rvv=0.6 for (V1,V2)
Rvn=0.5 for (V1,nf1) and (V2,nf2)
Rnn=0 for (nf1,nf2)
(這是什麼並不重要的(V1,nf2)
和(V2, nf1)
相關性)。現在我們用系詞在MATLAB中產生相關的隨機數:
Rvv=0.6;
Rvn=0.5;
Rnn=0;
n = 8736;
%V1 V2 nf1 nf2
Rho = [1 Rvv Rvn 0 ; %V1
Rvv 1 0 Rvn; %V2
Rvn 0 1 Rnn; %nf1
0 Rvn Rnn 1 ]; %nf2
Random_no = copularnd('Gaussian',Rho,n);
這一切都確定,當Rvv
爲0.6
,並Random_no
將是一個8736 by 4
矩陣,是因爲我們通過Rho
矩陣指定每對列相關。但是當Rvv=0.9
,MATLAB返回錯誤如下:
Error using mvnrnd
SIGMA must be a symmetric positive semi-definite matrix.
Error in copularnd
u = normcdf(mvnrnd(zeros(1,d),Rho,n));
我不明白是什麼問題以及如何我真的用系詞產生相關的隨機數。如果有人能幫助我解決這個問題,我將非常感激。