![在 SageMath 中绘制 Matlab 数据?](https://linux22.com/image/1389531/%E5%9C%A8%20SageMath%20%E4%B8%AD%E7%BB%98%E5%88%B6%20Matlab%20%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我有 100x100 的 matlab 矩阵,我想在 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 的。垫Sage Math Notebook 中的数据?
答案1
您的第一步是实际读取文件;它们不是原始数据,而是一种(可能是专有的)原始文件类型。请参阅这个 Stackoverflow 问题如何将它们放入 Python 中。
一旦将内容放入 Scipy 或 Numpy 数组中,就应该能够进行转换。Sage 代码:
import numpy
l=numpy.array([[1.0,2.0],[2.0,3.0]],dtype=float)
M = matrix(l)
M
但是,请注意,此功能可能不经常使用,因此您可能需要做一些微妙的事情 - 例如,我必须声明我的 Numpy 数组的数据类型。
答案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()