Try this:

(%i7) M : genmatrix(A[phi],3,1);
(%o7) matrix([A[phi](1,1)],[A[phi](2,1)],[A[phi](3,1)])

Nice way to locally define function A[phi]

(%i8) M, A[phi](i,j) := cos(phi);
(%o8) matrix([cos(phi)],[cos(phi)],[cos(phi)])

In Maxima, A[phi](i,j) := cos(phi) defines a memoizing function--there are some things about memoizing functions

can be a tricky--be careful.

Alternatively, you could simply do

(%i9) M : genmatrix(lambda([i,j], cos(phi)),3,1);
(%o9) matrix([cos(phi)],[cos(phi)],[cos(phi)])

--Barton

From: Jan Brosius <brosius.jan@gmail.com>
Sent: Tuesday, July 8, 2014 11:17
To: maxima-discuss@lists.sourceforge.net
Subject: [Maxima-discuss] matrix problem

Hi,

I can define

genmatrix(A[phi],3,1}

but how do I assign a value to e.g. A[phi][2,1]. See below the maxima output

(%i1) genmatrix(A[phi],3,1);
[ A   (1, 1) ]
[  phi       ]
[            ]
(%o1)                           [ A   (2, 1) ]
[  phi       ]
[            ]
[ A   (3, 1) ]
[  phi       ]
(%i2) A[phi][2,1]:=cos(phi);

define: argument cannot be an atom or a subscripted memoizing function; found:
(A   )
phi
2, 1
-- an error. To debug this try: debugmode(true);

(%i3) A[phi][2,1]:cos(phi);

assignment: cannot assign to (A   )
phi
2, 1
-- an error. To debug this try: debugmode(true);

thx for any help
Jan