【问题标题】:Calculate trend values by regression in MATLAB在 MATLAB 中通过回归计算趋势值
【发布时间】:2021-01-16 05:48:02
【问题描述】:

我有一个 19 行和 7541502 列的矩阵。 我想使用回归得到每列的趋势。 这可以通过使用 MATLAB 函数实现,但需要大量时间。 写出来的函数如下:

Data = box1;
[r, c] = size(Data);
X = [1:r]'; Total = [];
for j = 1:c;
   Y = Data(:, j);
   [b1, bint1] = regress(Y, [ones(size(Y)) X]);
   Qs = [bint1(2, :), b1(2, :)];
   Total = [Total; Qs];
end

有没有办法在 MATLAB 中加速 Mfile? 有没有不使用函数来计算回归的方法?

提前致谢。

【问题讨论】:

    标签: matlab regression trend


    【解决方案1】:

    在进入 for 循环之前尝试将 Total 初始化为正确的大小。

    Total = zeros(c, 2);
    

    代替:

    Total = [];
    

    【讨论】:

    • 谢谢。我使用了这个命令“Total = nan(c, 3);”但是计算的时间还是很长
    • 预分配至少应该加快一点。我的猜测是剩余时间非常接近您的计算机的能力。您正在对所有这些回归进行大量计算。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多