I would like to efficiently fill in or assign values to matrix m:
m={
{a[1,1],a[1,2],a[1,3],a[1,4]},
{a[2,1],a[2,2],a[2,3],a[2,4]},
{a[3,1],a[3,2],a[3,3],a[3,4]},
{a[4,1],a[4,2],a[4,3],a[4,4]}};
a[1,1] to a[4,1] to be equal to 1.
a[1,2] to a[4,2] to be equal to another column of value:

a[1,3] to a[4,3] to be equal to another column of value:

and
a[1,4] to a[4,4] to be evaluated based on the matrix locations of the other a[1,1] to a[4,3] cells as in excel cell format of :
a[1,4] = a[1,1]*a[2,3]+ etc etc
but as soon as those dependencies are replaced with actual numbers, for example a[1,1] is now no longer symbolic but actual values, then how to symbolically do those evaluations based on cell locations similar to Excel as I will reuse this matrix again? Maybe use Table or something to evaluate and then join them together into a large matrix ?

Tablecan be used (you can useIfinsideTable). btw, you are showing a matrix with 4 rows, but trying to put a column with 5 rows in there with your example. That will cause a problem. – Nasser Dec 19 '12 at 19:28m = Array[0 &, {4, 4}]; m[[1 ;; 4, 1]] = 1– belisarius Dec 19 '12 at 19:54