在 SageMath 中绘制 Matlab 数据?

在 SageMath 中绘制 Matlab 数据?

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

相关内容