Как создать векторизованную версию randsample в Matlab - PullRequest
0 голосов
/ 30 октября 2019

У меня есть поддержка (supp_epsilon) и функция вероятности (pr_mass_epsilon) в Matlab, построенная следующим образом.

    supp_epsilon=[0.005 0.01;
                  0.01  0.015;
                  0.015 0.02;
                  0.02  0.025]; 

    suppsize_epsilon=size(supp_epsilon,1);

    pr_mass_epsilon=zeros(suppsize_epsilon,1);

    mu_epsilon=[0; 0];
    sigma_epsilon=[1 0.5; 0.5 1];

    pr_mass_epsilon=zeros(suppsize_epsilon,1);

    for j=1:suppsize_epsilon
 pr_mass_epsilon(j)=mvnpdf(supp_epsilon(j,:),mu_epsilon.',sigma_epsilon)/sum(mvnpdf(supp_epsilon,mu_epsilon.',sigma_epsilon));
     end

Примечание: supp_epsilon равно 4x2. Каждая 1x2 строка supp_epsilon является элементом поддержки интереса.

Вопрос: Я хочу нарисовать n=10 векторов размера 1x2 из pr_mass_epsilon. Каждый из этих векторов должен быть строкой supp_epsilon. Для очень больших n эмпирическая частота нарисованных векторов должна быть близка к pr_mass_epsilon.

Как я могу это сделать?

Примечание: Этот вопрос относится к скалярному случаю, когда в ответе предлагается использовать randsample.

...