2016-03-05 210 views
-1

我已經使用matlab函數f = ksdensity(x)創建了一組密度值,其中x是一個nx1向量。現在這產生類的結果 '雙重'如何在matlab中將一個類轉換爲另一個類

{Columns 1 through 12 

0.0001 0.0002 0.0003 0.0004 0.0006 0.0008 0.0012 0.0016 0.0022 0.0029 0.0038 0.0049 

列13至24

0.0062 0.0078 0.0095 0.0115 0.0136 0.0159 0.0183 0.0208 0.0233 0.0257 0.0281 0.0304 

列25至36

0.0327 0.0349 0.0370 0.0392 0.0414 0.0438 0.0463 0.0491 0.0521 0.0553 0.0586 0.0621 

列37至48

0.0656 0.0691 0.0723 0.0752 0.0776 0.0795 0.0808 0.0814 0.0814 0.0808 0.0796 0.0779 

第49至60列

0.0758 0.0733 0.0707 0.0680 0.0652 0.0624 0.0597 0.0571 0.0547 0.0523 0.0501 0.0479 

列61〜72

0.0459 0.0441 0.0423 0.0408 0.0393 0.0381 0.0370 0.0360 0.0352 0.0345 0.0338 0.0331 

列73〜84

0.0324 0.0315 0.0305 0.0293 0.0279 0.0263 0.0244 0.0224 0.0203 0.0181 0.0158 0.0137 

列85至96

0.0116 0.0097 0.0079 0.0064 0.0051 0.0040 0.0030 0.0023 0.0017 0.0012 0.0009 0.0006 

列97到100

0.0004 0.0003 0.0002 0.0001} 

但爲了進一步使用這些數據,我需要將其轉換爲數組。我怎麼做?

+0

數組不是*類*。它是每個都有一個類的對象列表。在你的情況下,它看起來像你已經有一個數組** **雙打。並且看[文檔](http://www.mathworks.com/help/stats/ksdensity.html#outputarg_f)它肯定已經是一個數組/矢量。 – Suever

回答

1

ksdensity的第一個輸出是已經是一個數組/矢量。

在MATLAB中,數組不是。從技術上講,全部 MATLAB變量是數組(任何標量實際上是1 x 1數組)。

因此,如果我們創建一個數組:

x = [1.1, 1.2, 1.3]; 

類是double

class(x) 

    double 

或者整數

y = uint8([1,2,3]); 

class(y) 

    uint8 

或數組,即使我們得到真的瘋了,我們可以有一排structs

z = [struct(), struct(), struct()]; 

class(z) 

    struct 

因此,您希望對輸出執行的任何操作(作爲數組)都可以在沒有任何轉換的情況下完成。

其它數據類型(如cell arrays)可能需要一些轉換得到遂成數字數組,但你不能在這一點上與處理。並且您可以隨時查看它們的類型iscellclass(data) == 'cell'

相關問題