I know the procedure of transforming one distribution to another by the use of CDF. However, I would like to know if there is existing function in Matlab which can perform this task?
My another related question is that I computed CDF of my empirical using ecdf()
function in Matlab for a distribution with 10,000
values. However, the output that I get from it contains only 9967
values. How can I get total 10,000
values for my CDF? Thanks.
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