MATLAB阵列比较

时间:2014-02-19 09:36:16

标签: matlab

我刚刚第一次学习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));

1 个答案:

答案 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)为真的元素。