计算大数据系列的Hankel矩阵

时间:2017-10-27 09:04:58

标签: matlab matrix svd

我想在以下主题中进行研究:

我经常在我的研究部分使用以下矩阵 enter image description here

我写了以下代码

Function [x ]=create_matrix1(b,l)
%This Function is used to Create Hankel Type Data Matrix
%x is a given data
%l represent window size
    n = length(b);
    m = n-l+1;
    x = zeros(m,l);
    for i=1:m
        x(i,:)=b(i:i+l-1);
    end;

对于少量数据的时间序列是正常的,但对于大型时间序列,内存粉碎,例如,让我们从雅虎财务历史价格中获取实际数据 enter image description here

时间序列的长度等于

>> length(BMW)

ans =

   257

对于这样的矩阵,方法正常工作

>> X=create_matrix(BMW,50);

X的大小相等

>> size(X)

ans =

   208    50

现在让我们考虑以下数据 加载quakevibration.mat

生成样本大小为10000的数据,在这个程序中会粉碎,我的最终目标是估计给定矩阵的SVD,创建矩阵但我需要近似SVD,哪种方法对此有用?一般来说大型时间序列,我该如何处理?

1 个答案:

答案 0 :(得分:1)

如果我理解了您的问题,那么您正在寻找引入here截断或缩减的SVD 方法。

这种方法在Matlab中实现,称为Fast SVD,并且高效地逼近SVD。

此外,如果内存有限,您可以使用this等在线算法。