AとBが同じ列 (および同じ順序) を持つテーブル (またはデータセット) である場合、次のような式は、次のようにismember(A(:, somecols), B(:, somecols))インデックス付けに適したブール配列を生成Aします。
A(ismember(A(:, somecols), B(:, somecols)), :)
上記の行は、 で指定された列の の行と一致する の行で構成されるtable(またはdataset、 のクラスに応じて) に評価されます。AABsomecols
しかしここで、Bちょうど 1 つの行があるとします。より現実的には、から行を選択するための基準は、単純に のこの 1 つの行、たとえば最初の行にA一致することであるとします。B
これを行うことができます:
A(ismember(A(:, somecols), B(1, somecols)), :)
これに関して私が持っている主な疑問は、それが「意味的に明確」ではないということですismember。実際には、 が等価性をテストするために使用されているからです。
書くことができれば、意味的により明確になります
A(isequal(A(:, somecols), B(1, somecols)), :)
しかし、これでは望ましい結果が得られません。A(:, ...)(具体的には、一致する行が含まれている場合でも一致を返しませんB(1, ...)。)
私の質問は、「この行はこの参照行とA一致しますか」という質問に対応する論理ベクトルを正しく生成する述語は何ですか?somecols