从matlab中的多变量t学生中提取

时间:2014-05-04 00:48:37

标签: matlab statistics distribution

我正在尝试从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

0 个答案:

没有答案