我有2个数据数组,我想从中提取常见元素。 Matlab的[c for c in curVal]
完成了这项工作。但它返回完全相同的元素。如果我想提取具有一定容差的元素怎么办?比如说
intersect
我想提取相同的元素,最多2个小数位。所以我希望答案是A = [1 2 3.0002 4.125 5.89];
B = [2 3.012 4.126]
。有没有内置函数来做到这一点?或者我如何实现这一目标?
答案 0 :(得分:4)
您可以按如下方式手动执行此操作。这将从A
中选择输出值;如果您想从B
中选择,只需在代码中交换A
和B
:
A = [1 2 3.0002 4.125 5.89];
B = [2 3.012 4.126];
tol = .01;
result = A(any(abs(bsxfun(@minus, A(:).', B(:))) < tol, 1));
答案 1 :(得分:4)
我只想round
输入:
C = intersect(round(A,2),round(B,2))
floor
和ceil
也是选项,具体取决于您真正想要实现的目标。