1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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
|