One problem was this line in your second while loop:
d(end+1,1:1) = n;
changing it to:
d(end+1,:) = n;
allows your code to run. I will let you decide if your code produces the correct results.
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!