www.pudn.com > kalmanmatalab.rar > rand_psd.m, change:2000-04-24,size:321b


function M = rand_psd(d, d2, k)
% Create a random positive definite matrix of size d by d by k (k defaults to 1)
% M = rand_psd(d, d2, k)   default: d2 = d, k = 1

if nargin<2, d2 = d; end
if nargin<3, k = 1; end
if d2 ~= d, error('must be square'); end

M = zeros(d,d,k);
for i=1:k
  A = rand(d);
  M(:,:,i) = A*A';
end