如果A和B是具有相同列(并且顺序相同)的表(或数据集),则表达式 likeismember(A(:, somecols), B(:, somecols))将生成一个适合索引的布尔数组A,如
A(ismember(A(:, somecols), B(:, somecols)), :)
上面的行计算为 a table(或dataset,取决于 的类),其中包含与中指定的列中的某行匹配A的那些行。ABsomecols
但现在假设它B正好有一排。更现实地,假设从中选择行的标准A只是匹配的单行,B比如第一行。
可以这样做:
A(ismember(A(:, somecols), B(1, somecols)), :)
我对此的主要疑问是它不是“语义清晰”,因为ismember它实际上被用来测试是否相等。
如果可以写的话,语义上会更清晰
A(isequal(A(:, somecols), B(1, somecols)), :)
但这确实不会产生预期的结果。(具体来说,即使A(:, ...)包含匹配的行,它也不返回匹配项B(1, ...)。)
我的问题是,将正确产生与问题“此行是否与此参考行A匹配”对应的逻辑向量的谓词是什么?somecols