MATLAB — Матрица ежедневной доходности S&P: замена нулевой матрицы внутри цикла for

Добрый вечер,

Мне нужно создать матрицу дневной доходности на основе 174 дневных цен индекса S&P. Таблица, из которой я извлекаю такие цены, называется «цены», а целевая матрица, в которую я должен вставлять значения, называется «доходность акций». Я попытался настроить вложенный цикл for - после предварительного выделения массива 173 * 500 с нулями (в противном случае процесс занимает 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

person Khasper    schedule 06.10.2019    source источник
comment
Какой тип имеет каждый элемент в prices ? double? uint8?   -  person Benny K    schedule 06.10.2019
comment
Я извлекаю данные из таблицы, тип double   -  person Khasper    schedule 07.10.2019


Ответы (1)


Предполагая, что prices представляет собой таблицу размером 174 x 500, вы можете просто использовать встроенные поэлементные операции MATLAB.

prices = table2array(prices);
stockreturns = prices(2:end, :) ./ prices(1:end-1, :) - 1;
person Michael    schedule 07.10.2019