2012-01-11 16 views
1

我有从每个循环运行保存的数据,它看起来像这样。为什么我的数据在MatLab中以这种格式保存?

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,但是只有包含特定元素的单元格才显示在此保存中。

我知道那些是值和他们相应的位置。

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

回答

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); 
2

这是因为你的矩阵是稀疏。如果你想显示你的数据“正常”做:

full(val) 
相关问题