1

У меня есть матрица 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 ответа2

1

Ваш первый шаг будет на самом деле читать файлы; они не являются необработанными данными, а являются (предположительно проприетарными) необработанными типами файлов. Посмотрите этот вопрос Stackoverflow о том, как получить их в Python.

Если у вас есть вещи в массиве Scipy или Numpy, вы сможете конвертировать. Мудрец код:

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

Однако имейте в виду, что эта функциональность, возможно, используется не так часто, поэтому вам могут потребоваться некоторые тонкие вещи - например, мне пришлось объявить тип данных моего массива Numpy.

1

Пример работающего кода, выведенный из форума поддержки 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()

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .