I noticed the box function. I put the matrix inside a call to box, so now you get no problems with calculations.
(%i1) piecewise([minf, und, -1, und, -1, inf, -1, 0, 1, 1, 1, inf, inf], x, 'open,'array);
""""""""""""""""""""""""""""""""""""""""""""""
"[ If x in ( minf , - 1 ) then und ]"
"[ ]"
"[ If x in [ - 1 , - 1 ] then und ]"
"[ ]"
"[ If x in [ - 1 , - 1 ] then inf ]"
(out1) "[ ]"
"[ If x in ( - 1 , 1 ) then 0 ]"
"[ ]"
"[ If x in [ 1 , 1 ] then 1 ]"
"[ ]"
"[ If x in ( 1 , inf ) then inf ]"
""""""""""""""""""""""""""""""""""""""""""""""
(%i2) %+7;
""""""""""""""""""""""""""""""""""""""""""""""
"[ If x in ( minf , - 1 ) then und ]"
"[ ]"
"[ If x in [ - 1 , - 1 ] then und ]"
"[ ]"
"[ If x in [ - 1 , - 1 ] then inf ]"
(out2) "[ ]" + 7
"[ If x in ( - 1 , 1 ) then 0 ]"
"[ ]"
"[ If x in [ 1 , 1 ] then 1 ]"
"[ ]"
"[ If x in ( 1 , inf ) then inf ]"
""""""""""""""""""""""""""""""""""""""""""""""
(%i3) %*k/5;
""""""""""""""""""""""""""""""""""""""""""""""
"[ If x in ( minf , - 1 ) then und ]"
"[ ]"
"[ If x in [ - 1 , - 1 ] then und ]"
"[ ]"
"[ If x in [ - 1 , - 1 ] then inf ]"
("[ ]" + 7) k
"[ If x in ( - 1 , 1 ) then 0 ]"
"[ ]"
"[ If x in [ 1 , 1 ] then 1 ]"
"[ ]"
"[ If x in ( 1 , inf ) then inf ]"
""""""""""""""""""""""""""""""""""""""""""""""
(out3) ------------------------------------------------------
5
(%i4)
Now Maxima does not treat the output like a matrix in calculations. I wish I noticed the box function sooner.
Rich