function [Vbeta,betanew] = Vbtane(X,betaold,B0,bkeep)
Vbeta = zeros(11,11,5);
betanew = zeros(size(betaold));
for j = 1:5
for i =1:263
Vbeta(:,:,j) = Vbeta(:,:,j) + exp(X(i,:)*betaold(:,j)+bkeep(i,j))*X(i,:)'*X(i,:);
end
Vbeta(:,:,j) = inv(inv(B0(:,:,j))+Vbeta(:,:,j));
betanew(:,j) = mvnrnd(betaold(:,j),Vbeta(:,:,j));
end
end
这是我写的求多元正态随机数的一个程序,可运行的结果总是错的
??? Error using ==> mvnrnd at 118
SIGMA must be a symmetric positive semi-definite matrix.
Error in ==> Vbtane at 9
betanew(:,j) = mvnrnd(betaold(:,j),Vbeta(:,:,j));
给的提示是Vbeta不是对称半正定矩阵,可我用特征值检验过,是半正定的,请问是怎么回事,请教高手,不甚感谢~!