如何在matlab中将一个类转换为另一个类
问题描述:
我已经使用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}
但为了进一步使用这些数据,我需要将其转换为数组。我怎么做?
答
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)可能需要一些转换得到遂成数字数组,但你不能在这一点上与处理。并且您可以随时查看它们的类型iscell
或class(data) == 'cell'
数组不是*类*。它是每个都有一个类的对象列表。在你的情况下,它看起来像你已经有一个数组** **双打。并且看[文档](http://www.mathworks.com/help/stats/ksdensity.html#outputarg_f)它肯定已经是一个数组/矢量。 – Suever