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