为什么我的数据在MatLab中以这种格式保存?

时间:2012-01-11 22:45:34

标签: matlab formatting sparse-matrix

我从每次循环运行中保存了数据,它看起来像这样。

val =

   (1,1)      16.0000

   (9,1)       0.0017

  (10,1)       0.0040

  (11,1)       0.0049

  (12,1)       0.0048

  (13,1)       0.0043

矩阵为50x50,但只有包含特定元素的单元格才显示在此保存中。

我知道那些是价值观及其相应的位置。

我想知道这种格式是什么,以及如何快速计算以这种方式显示的数字单元格。

2 个答案:

答案 0 :(得分:2)

这是因为您的矩阵稀疏。如果您想“正常”显示您的数据,请执行以下操作:

full(val)

答案 1 :(得分:1)

这是一个稀疏矩阵,正如@Oli已经正确说过的那样。我会尝试详细说明一下。

您可以使用以下命令创建它:

 s = sparse(zeros(13,13));
 s(1,1) = 16;
 s(9,1) = 0.0017;
 s(10,1) = 0.0040;
 ...

使用完整命令将其转换回完整矩阵:

 f = full(s);

您想要计算条目数,请使用 nnz 。它计算非零条目的数量:

 z = nnz(s);