我刚刚第一次学习MATLAB。
我正在阅读一些试图理解它的代码。我相信我有两个名为pdw_raw& amp; pdw_factors,包含日期列表。导致我最混乱的一行是下面代码中的最后一行。我似乎能理解这一行的唯一方法是pdw_raw中的每个元素都在检查pdw_factors的最大日期 - 这是正确的吗?
目前很难理解MATLAB语法。
%first retrieve the relevant dates;
sql_statement = ['select distinct pricedatew from D_RAWRETS order by pricedatew'];
cursor = exec(QES_DB, sql_statement);
cursor = fetch(cursor);
pdw_raw = datenum(cursor.data);
pdw_raw = pdw_raw(1:end-1, 1);
sql_statement = ['select distinct pricedatew from D_FACTORS order by pricedatew'];
cursor = exec(QES_DB, sql_statement);
cursor = fetch(cursor);
pdw_factors = datenum(cursor.data);
missing_dates = pdw_raw(pdw_raw > max(pdw_factors));
答案 0 :(得分:2)
这是正确的。
pdw_raw > max(pdw_factors)
创建一个逻辑数组,对于pdw_raw
元素大于最大pdw_factors
元素的元素为true,否则为false。
pdw_raw(pdw_raw > max(pdw_factors));
使用logical indexing仅提取pdw_raw > max(pdw_factors)
为真的元素。