2012-01-11 50 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) 
相關問題