Transforming data to Gaussian using probability integral transform in Matlab:

n = 500; x=exp(randn(n,1))+(randi(2,[n 1])-1).*(10+3*randn(n,1)); fhat = @(in) sum(x <= in)/n; Fhat = @(A) arrayfun(fhat,A); y=Fhat(x); z = icdf('normal',y,0,1); figure; subplot(1,2,1); hist(x,20); xlabel('x'); subplot(1,2,2); hist(z,20); xlabel('z');