3

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はありますか?

4

1 に答える 1

2

ここで提案された回答を参照してください。別のアプローチを提案します。あなたの場合、あなたは持っているでしょう:

key = [NaN 2004 1 1 NaN];
于 2013-12-02T19:10:19.903 に答える