我使用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}
但为了进一步使用这些数据,我需要将其转换为数组。我该怎么做?
答案 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 数组,但此时您还没有处理此类数据。您可以随时使用iscell
或class(data) == 'cell'