7

It is very simple in Mathematica to convert a list of lists into a matrix: all you need to do is apply the //MatrixForm function to it and voila.

Is it possible to do the reverse though? I have a matrix that I want to convert back into a list of lists, so as to manipulate its elements more easily. Is this possible? Is there a 'ListForm' function that deletes all MatrixForms from the element in question?

As an example, here is the FullForm for one of my elements: MatrixForm[List[List[63],List[4,62]]]

Is there a function which would take this as input and return simply List[List[63],List[4,62]]?

Thank you

Aron
  • 1,722
  • 1
  • 12
  • 30

1 Answers1

13

I'll start with the standard warning: MatrixForm is just a wrapper that makes your matrices look pretty. Nothing more, nothing less. It does not "convert" a list of lists to a matrix. Your list of lists is already a matrix:

m = Identity@10;
MatrixQ@m
(* True *)

Using MatrixForm wrapped matrices in calculations will only give you an error. Use it only for typesetting/display purposes.


To answer your specific question, if you have a MatrixForm wrapped around it for whatever reason, you can remove the wrapper in one of the following ways:

First@m (* or *)
Identity @@ m (* or *)
m /. MatrixForm[x_] :> x

which will give you back the list of lists.

rm -rf
  • 88,781
  • 21
  • 293
  • 472