我有两个列表,我需要将一个中的元素与另一个进行匹配,并将这些元素输出到一个新的矩阵(输出)中。Fortran 中最快的方法是什么?到目前为止的蛮力:
do i = 1,Nlistone
do j = 1,Nlisttwo
if A(i).eq.B(j) then
output(i) = B(j)
end if
end do
end do
openmp版本:
!$OMP PARALLEL PRIVATE(i,j)
do i = 1,NA
do j = 1,NB
if A(i).eq.B(j) then
filtered(i) = A(j)
end if
end do
end do
!$OMP END PARALLEL DO
肯定有更好的方法可以做到这一点,并且在这里排序不是一个选项抱歉(+向量元素没有任何特定的顺序)。是否有类似于mask
python 的布尔参数?