function M = go_lst_to_matrix (L)
## usage: M = go_lst_to_matrix (L)
##
## Converts a list to a matrix
## Assumes list contains equal-length lists as elements
## Not in ginsh
## Copyright (C) 2002 by Peter J. Gawthrop
n = eval(g_nops(L));
m = eval(g_nops(g_op(L,"0")));
M = "";
for i = 1:n
M = sprintf("%s[",M);
m_i = g_op(L,int2str(i-1));
if (eval(g_nops(m_i))!=m)
error("All list elements must be lists of same length");
endif
for j = 1:m
m_ij = g_op(m_i,int2str(j-1));
if j>1
jsep = ", ";
else
jsep = "";
endif
M = sprintf("%s%s%s", M, jsep, m_ij);
endfor
if i<n
isep=", ";
else
isep="";
endif
M = sprintf("%s]%s", M, isep);
endfor
M = sprintf("[%s]",M);
endfunction