【问题标题】:MATLAB - S&P daily return matrix: Substitution of the zero matrix inside the for - loopMATLAB - S&P 每日收益矩阵:在 for 循环内替换零矩阵
【发布时间】:2020-02-04 05:13:18
【问题描述】:

晚上好,

我必须根据标准普尔指数的 174 个每日价格创建一个每日回报矩阵。 我从中获取此类价格的表称为“价格”,而我必须插入这些值的目标矩阵称为“库存退货”。 我尝试在预分配一个 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 中的每个元素是什么类型? double? uint8?
  • 我从一个表中获取数据,类型是 double

标签: arrays matlab for-loop matrix pre-allocation


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多