我正在MATLAB中工作,我有一个400万个值的向量。我尝试使用DateTimeFormatter
函数,但出现此错误:
使用链接时出错(第240行)请求的1x12072863584470(40017.6GB)阵列超出了最大阵列大小首选项。创建大于此限制的数组可能需要很长时间,并且会导致MATLAB变得无响应。有关更多信息,请参见数组大小限制或首选项面板。
我发现有些人使用timeZone
函数避免了该错误,但是我想知道是否有办法避免这种错误,并且仍然使用linkage
函数。
答案 0 :(得分:0)
大多数分层群集需要 O(n²)内存。所以,不,您不想使用这些算法。
有一些例外,例如SLINK和CLINK。这些可以仅通过线性存储器来实现。我只是不知道Matlab是否有任何好的实现。
或者您使用kmeans或DBSCAN,它们也仅需要线性内存。
答案 1 :(得分:-2)
您是否完全确定这些4 million values
是statistically correct
?如果是,那么您是个幸运的人;如果不是,那么请做data pre-processing
。您会看到这400万个值已大大减少为有意义的样本,可以轻松地将其放入内存(RAM)中进行分层聚类。