Matlab中的对象是什么类型的?

时间:2013-11-30 15:07:30

标签: matlab matlab-guide

我已经下载了一个数据集并将其加载到matlab中。文件具有.mat扩展名。当我通过变量编辑器看到它们的值时,我发现了类似的东西:

...
(26,1)      0.206447341030756
(13,2)      0.098574099069309
(20,2)      0.080611271798447
(26,2)      0.107946926644624
(39,2)      0.127336769393055
(50,2)      0.040181713803106
(64,2)      0.1243316705859
 ...

当我使用运算符来确定数据的类型时,它说数据是双倍的!如果可能,我想将其转换为矢量或矩阵。这个数据集的类型是什么!我甚至不知道要搜索的名字!

感谢。

2 个答案:

答案 0 :(得分:4)

它看起来像一个稀疏矩阵。当大多数矩阵用零​​填充时,这些都很有用 - 然后不需要存储零。它的工作和行为大部分时间都是完整的(不同功能的不同计算时间会很明显。有时候是有益的,有时候不是,取决于数据的外观和功能)。

无论如何,如果您想在两者之间进行转换,请使用sparsefull函数。

sparse_mat = sparse(A); % if you want to make a "normal" matrix sparse
full_mat = full(sparse_mat);  % vice versa

答案 1 :(得分:1)

这看起来像一个稀疏矩阵(与普通的完整矩阵相对)。有关更多信息,请参阅here。检查稀疏性的正确方法是issparse

A = speye(10); % Or sparse(eye(10))
issparse(A)

返回true。但是:

B = full(A); % Or eye(10)
issparse(B)

返回false。请注意,许多Matlab的函数不适用于稀疏输入。您可能需要使用full将它们转换为完整矩阵(如果内存允许)。