我正在创建一个gibbs采样算法,当我使用mvnrnd函数时会出现以下消息:
??? Error using ==> mvnrnd
SIGMA must be a symmetric positive semi-definite matrix.
注意我在使用mvnrnd
之前使用过chol函数nu02=chol(nu01);
nu0=s*nu02;
z = mvnrnd(mu0,nu0)';
我该怎么做才能解决问题?
答案 0 :(得分:0)
我猜你期望nu0
在你传递给mvnrnd
时应该是对称正半正定的,但由于某种原因,有很小的数值问题使它成为不太对称。
可能还有另一个问题,但如果这是问题,你可以强制它与命令完全对称
nu0 = (nu0 + nu0')/2;
希望有所帮助。