我正在尝试从Matlab中的多变量t-学生分布(具有指定的均值,方差和df)中绘制随机数。
查看matlab文档,我发现了“mvtrnd”函数(http://www.mathworks.it/it/help/stats/mvtrnd.html),但不幸的是,它返回以0为中心的值。
你能否建议我解决我的问题的任何其他功能或方法?
编辑:
我想我已经解决了编写下面这个功能的问题。我在维基百科中发现,如果X作为多元t学生(mu,$$ \ Sigma $$,df)和Y作为多元正常(0,$$ \ Sigma $$)分发,则比X X = \ mu + Y * \ sqrt {\ frac {df} {\ chi ^ 2_ {df}}} $$。
function [ output ] = st_rndmvt( mu, sigma, df, cases )
if nargin < 4
cases = 1;
end
mu = mu(:)';
output = zeros(cases, length(mu));
for i=1:cases
output(i, :) = mu + mvnrnd(zeros(length(sigma), 1), sigma) * sqrt(df/chi2rnd(df));
end
end