Чтобы отобразить данные Matlab в SageMath?
У меня есть матрица 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 .mat в Sage Math Notebook?
2 ответа
Пример кода, который работает, выведенный из форума поддержки 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()
Ваш первый шаг будет на самом деле читать файлы; это не необработанные данные, а (предположительно проприетарный) необработанный тип файла. Посмотрите этот вопрос о Stackoverflow, чтобы узнать, как получить их в Python.
Когда у вас есть вещи в массиве Scipy или Numpy, вы сможете конвертировать. Мудрец код:
import numpy
l=numpy.array([[1.0,2.0],[2.0,3.0]],dtype=float)
M = matrix(l)
M
Однако имейте в виду, что эта функциональность, возможно, используется не так часто, поэтому вам могут потребоваться некоторые тонкие вещи - например, мне пришлось объявить тип данных моего массива Numpy.