我有一个尺寸为10000x5且格式为[id, year, month, day, value]的矩阵

例如:

[ 1 2004 1 1 100;
  1 2004 1 2 201;
  2 2004 1 1  30;
  2 2004 1 2 123;
  2 2005 1 1 300;
  2 2005 1 2 103;
  ...]


给定搜索条件year==2004 && month==1 && day==1,我想过滤该矩阵的子集并将其复制到另一个矩阵中。所以我想首先找出符合给定条件的向量的行索引。

首先,我尝试了

[row] = find((data(:,2) == 2004 && data(:,3) == 1 && data(:,4) == 1));


但这似乎不适用于多个条件,但我得到了错误

Operands to the || and && operators must be convertible to logical scalar values.


接下来我尝试了

key = [2004 1 1];
[~,index] = ismember(data,key,'rows')


但它说

Error using ismember. A and S must have the same number of columns.


有什么方法可以完善语法,或者可以使用其他API来搜索多个条件?

最佳答案

请参阅建议的答案here。它提出了一种替代方法。就您而言,您将:

key = [NaN 2004 1 1 NaN];

09-06 20:05