Generating a graph from .mat file
The .mat file contains the adjacency matrix of a graph. How can I generate the underlying graph of this matrix in Jupyter?
The .mat file contains the adjacency matrix of a graph. How can I generate the underlying graph of this matrix in Jupyter?
I had a look on the web, and it seems that you are speaking about .mat
matrices provided by matlab. So, scipy
, which is shipped with Sage already has a tool to read .mat
files:
sage: from scipy.io import loadmat
sage: M = loadmat('<path_to_your_file.mat>')
As you can see, the object M is a dictionary:
sage: M
What is of interest for us is the a
field:
sage: M['a']
array([[[ 1., 4., 7., 10.],
[ 2., 5., 8., 11.],
[ 3., 6., 9., 12.]]])
Which is an aray with a single entry that is the array we want:
sage: M['a'][0]
array([[ 1., 4., 7., 10.],
[ 2., 5., 8., 11.],
[ 3., 6., 9., 12.]])
This can then be transformed into a Sage matrix:
sage: m = matrix(RDF,M['a'][0])
sage: m
[ 1.0 4.0 7.0 10.0]
[ 2.0 5.0 8.0 11.0]
[ 3.0 6.0 9.0 12.0]
sage: m.parent()
Full MatrixSpace of 3 by 4 dense matrices over Real Double Field
If your matrix is the adjacency matrix of a graph, it should be square and symmetric, in which case you can recover the graph with:
sage: G = Graph(m)
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2018-07-20 05:56:52 +0100
Seen: 492 times
Last updated: Jul 20 '18
Make ipython notebook world-viewable?
Failed to start -- unable to connect to remote server
jupyter (ipython notebook) kernel math display
Launch Jupyter notebook from Sage?
Sage on Jupyter with ipywidgets, matplotlib
Jupyter doesn't use the built-in MathJax
Automatic typesetting in Jupyter
Integrate SAGE Jupyter Notebook in Anaconda Python Distribution
What is the format of the
.mat
file ? It it a text file ? Could you please provide a concrete example ?The documentation for "mat-files" would seem to be: