0

サイズ (A) > サイズ (B) の 2 つの日付配列 A と B があります。

には、日付ごとに複数のエントリが含まれています (さまざまなデータを含むセルに対応します)。B は単に開始日から終了日までのすべての日付ですが、特定のデータにも対応しています。

A の各行の日付に対応する B の行番号を含む C (サイズ(C) == サイズ(A)) を作成して配列したい (データを相互参照できるようにするため、つまり計算を実行する) A と B のデータに基づき、B の行インデックスを使用して日付を照合します)。

ループと find 関数を使用してこれを行うことができます。

for i=length(A)
C(i) = find(A(i) == B);
end

ただし、これはおそらく最も効率的なソリューションではありません (データ セットが大きいため、かなりの時間がかかります)。私は単純に C = find(A == B) を「好む」のですが、Matlab ではこれが許可されていません。

ループを使わずに同じ結果を得る方法はありますか?

助けてくれてありがとう!

4

3 に答える 3

1

ismember次のように、の 2 番目の出力引数を使用できます。

[tf, C] = ismember(A, B);
于 2013-06-25T13:02:01.320 に答える
0

必要な機能は交差です。次のように使用します。

[a,b,C] = intersect(A,B)

a と b の結果は重要ではありません。結果CCあなたが望むものです

于 2013-06-25T11:22:04.477 に答える