如何在matlab中将一个类转换为另一个类

时间:2016-03-05 22:08:01

标签: matlab class

我使用matlab函数f = ksdensity(x)创建了一组密度值,其中x是nx1向量。现在这会产生类'double'的结果

{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}

但为了进一步使用这些数据,我需要将其转换为数组。我该怎么做?

1 个答案:

答案 0 :(得分:1)

ksdensity的第一个输出已经一个数组/向量。

在MATLAB中,数组不是It is a list of objects that each have the same class.从技术上讲,所有 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)可能需要进行一些转换才能进入 numeric 数组,但此时您还没有处理此类数据。您可以随时使用iscellclass(data) == 'cell'

查看其类型