Чтобы отобразить данные Matlab в SageMath?

853
Léo Léopold Hertz 준영

У меня есть матрица Matlab 100x100, которую я хочу нарисовать в Sage Notebook. я бегу

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

я получил

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' 

и как изображение

Чтобы отобразить данные Matlab в SageMath?

и пустая фигура.

Как вы можете отобразить данные Matlab .mat в Sage Math Notebook?

1
Я думаю, что это ограничение, установленное Sage Notebook. Léo Léopold Hertz 준영 10 лет назад 0

2 ответа на вопрос

1
kcrisman

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.

1
Léo Léopold Hertz 준영

Пример работающего кода, выведенный из форума поддержки Sage:

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

Похожие вопросы