0

CDF を使用してある分布を別の分布に変換する手順を知っています。ただし、Matlab にこのタスクを実行できる既存の関数があるかどうかを知りたいですか?

私の別の関連する質問は、値ecdf()のある分布について、Matlab で経験的な使用関数の CDF を計算した10,000ことです。ただし、そこから得られる出力には9967値のみが含まれます。10,000CDF の合計値を取得するにはどうすればよいですか? ありがとう。

4

3 に答える 3

1

あなたが言うように、必要なのはCDFだけです。正規分布のCDF はerf、 Matlab 関数で表すことができます。

テストされていない例:

C = @(x)(0.5 * (1 + erf(x/sqrt(2))));

x = randn(1,1000);  % Zero-mean, unit variance
y = C(x);           % Approximately uniform
于 2012-07-03T20:37:14.380 に答える
1
for t=1:nT 
    [f_CDFTemp,x_CDFTemp]=ecdf(uncon_noise_columndata_all_nModels_diff_t(:,1,t)); % compute CDF of empirical distribution
    f_CDF(1:length(f_CDFTemp),t) = f_CDFTemp; % store the CDF of different distributions with unequal size in a new variable
    x_CDF(1:length(x_CDFTemp),t) = x_CDFTemp;
    b_unifdist=4*t;
    [Noise.N, Noise.X]=hist((a_unifdist+(b_unifdist-a_unifdist).*f_CDF(:,t)),100); % generate the uniform distribution by using the CDF of empirical distribution as the CDF of the uniform distribution
    generatedNoise(:,:,t)=emprand(Noise.X,nRows,nCol); % sample some random numbers from the uniform distribution generated above by using 'emrand' function
end
于 2012-07-07T22:57:14.260 に答える
0

これはまさにあなたが探しているものではありませんが、逆の方法を示しています。それを逆にすることはそれほど悪くないはずです。

于 2012-07-03T19:33:21.833 に答える