function Matrix=rand2(p,N) %p=exp(-(0:255).^2/1000); %p=p/sum(p); U=rand(N); Matrix=U; %h(1:M) = 0; df=cdf(p); %step = 1/M; p=0; % =step ?? value=1; for i=1:N for j=1:N p=U(i,j); value=1; if( p<=df(value)) %do nothing elseif( p>df(value) ) while(p>df(value)) value=value+1; end end Matrix(i,j)= value; %p=p+step; end end %Matrix