Para traçar dados do Matlab no SageMath?

1

Eu tenho matriz Matlab 100x100, que eu quero desenhar no Sage Notebook. Eu corro

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

Eu obtenho

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'

e como imagem

e uma figura vazia.

Como você pode traçar os dados .mat do Matlab no Sage Math Notebook?

    
por Léo Léopold Hertz 준영 13.12.2013 / 12:45

2 respostas

1

Exemplo do código que funciona, deduzido do fórum de suporte do 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()
    
por 28.01.2014 / 02:02
1

Seu primeiro passo será realmente ler os arquivos; eles não são dados brutos, mas um tipo de arquivo bruto (presumivelmente proprietário). Veja esta pergunta do Stackoverflow para saber como obtê-los no Python.

Depois de ter as coisas em um array Scipy ou Numpy, você deve ser capaz de converter. Código sábio:

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

Entretanto, tenha em mente que essa funcionalidade talvez não seja muito usada, por isso pode haver coisas sutis que você precisa fazer - por exemplo, eu tive que declarar o tipo de dados do meu array Numpy.

    
por 17.12.2013 / 19:33

Tags