# 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?

Generating a graph from .mat file

2

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)
```

Asked: **
2018-07-19 22:56:52 -0500
**

Seen: **99 times**

Last updated: **Jul 20 '18**

how to (automatically) convert many .sws to .ipynb?

plot sage Graphics() from jupyter notebok in CoCalc

SageMath @interact under Jupyter

Jupyter doesn't use the built-in MathJax

How can you import C++ code into a Jupyter notebook?

best way to convert many notebooks from sagenb to jupyter?

Why the value returned by read_data,open... are unavailable in Jupyter notebook

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.

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: