Found This cute algorithm to solve this.
%original histogram
Hist=imhist(Im);
%Create probabilty vector for each grayscale value
mapVec=zeros(1,256);
for i = 1:size(Im,1)
for j = 1:size(Im,2)
%add one to representing bin for each value of
%grayscale found in the image
mapVec(Im(i,j)+1)=mapVec(Im(i,j)+1)+1;
end
end
%Generate the cumulative histogram
sum=0;
for i=1:size(mapVec,2)
sum=sum+mapVec(i);
mapVec(i)=sum;
end
%divide by number of Pixels to find CDF
mapVec=mapVec/(size(Im,1)*size(Im,2));
%round the result times number of bins
mapVec=round(mapVec*256);