To plot Matlab data in SageMath?

I have matlab matrix 100x100, which I want to draw in Sage Notebook. I run

plot(open(DATA+'matlab.mat'))

I get

verbose 0 (2387: plot.py, generate_plot_points) WARNING: When plotting,
failed to evaluate function at 200 points.
verbose 0 (2387: plot.py, generate_plot_points) Last error message:
''file' object is not callable'

and as picture

enter image description here

and an empty figure.

How can you plot Matlab's .mat data in Sage Math Notebook?

1

2 Answers

Your first step will be to actually read the files; they are not raw data, but a (presumably proprietary) raw file type. See this Stackoverflow question for how to get them into Python.

Once you have things in a Scipy or Numpy array, you should be able to convert. Sage code:

import numpy
l=numpy.array([[1.0,2.0],[2.0,3.0]],dtype=float)
M = matrix(l)
M

However, keep aware that this functionality perhaps isn't used as much, so there may be subtle things you have to do - for instance, I had to declare the data type of my Numpy array.

0

Example of the code that works, deduced from the Sage support forum:

import matplotlib.pyplot as plt
import scipy.io
data = scipy.io.loadmat('arrytmia_data_bad.mat')
x = data['data']
plt.plot(x, linestyle='', marker='x')
plt.savefig('a.png') # vs Python: plt.show()

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like