MATLAB - S&P daily return 矩阵:替换 for - 循环内的零矩阵

MATLAB - S&P daily return matrix: Substitution of the zero matrix inside the for - loop

晚上好,

我必须根据 S&P 指数的 174 个每日价格创建一个每日 return 矩阵。 我从中获取此类价格的 table 称为 "prices",而我必须插入值的 objective 矩阵称为 "stockreturns"。 在预先分配一个带有零的 173*500 数组后,我尝试设置一个嵌套的 for - 循环(否则该过程需要 1 个多小时),但我得到的输出是一个零矩阵。

有人能帮帮我吗?这是我使用的代码:

    stockreturns = zeros(173,500)
for k = 1:500;
    for h = 1:173;
        stockreturns(h,k) = ((prices{h+1,k}/prices{(h),k})-1)
    end
end

假设 prices 是 174 x 500 table,您可以只使用 MATLAB 的内置元素运算。

prices = table2array(prices);
stockreturns = prices(2:end, :) ./ prices(1:end-1, :) - 1;