Your loop runs only three times, so all you can possibly populate is 3 rows.
Typically, you would initialize a shift register with the initialized array, then use replace array subset, feeding the modified array back into the shift register. However, in this case you could just autoindex the 1D array at the output tunnel to build the resulting 2D array.
Sorry, I am not familiar with sinograms. Do you have a link describing the algorithm?