为什么乘以NaN?

时间:2014-02-19 10:46:35

标签: matlab

我正在阅读一些MATLAB代码,希望能够提高我的知识水平。我不明白第3行中使用NaN

根据我的理解,它是一个N-by-N矩阵,所以为什么你想要NaN多个它们?我也不理解再次使用ret_usdvec的行:ret_usdvec(sline(1,1):sline(1,2), :)... = tdata

int_cos         = length(usedolchk);
int_obs         = length(pricedatew);

ret_usdvec      = num2cell(NaN * ones(int_cos * int_obs, 4));

sline           = ones(1, 2);

int_count_max   = 400000;
int_count       = 0;
for t = 1:int_obs
    if (int_count == 0)
        QES_DB              = SEdatabase(data_base, '', '');
    end
    sql_statement   = ['select idchk, co_name, pdatew, ret from D_RAWRETS'];
    cursor          = exec(QES_DB, sql_statement);
    cursor          = fetch(cursor);
    tdata           = cursor.data;
    sline(1, 2)     = sline(1, 1) + length(tdata(:, 1)) - 1;
    ret_usdvec(sline(1, 1):sline(1, 2), :)...
            = tdata;
    sline(1, 1)     = sline(1, 2) + 1;
    int_count       = int_count + length(tdata(:, 1));
    if (int_count >= int_count_max) || t == int_obs
        close(QES_DB);clear QES_DB
        int_count       = 0;
    end
 end

1 个答案:

答案 0 :(得分:4)

在我看来,他们只是为具有NaN值的数据分配空间,然后使用循环内的真值填充数据。这样,如果有任何缺失的数据,它将具有值NaN。