[ncl-talk] How to find the same elements in two matrixes
Dennis Shea
shea at ucar.edu
Fri Dec 19 08:39:55 MST 2014
I do not think you can do it without a loop.
function get_dup_elements(a[*], b[*])
begin
dima = dimsizes(a)
dimb = dimsizes(b)
ndup = -1
if (dima.le.dimb) then
dimd = new( dima, typeof(a))
do n=0,dima-1
ii := ind(b.eq.a(n))
if (.not.ismissing(ii(0))) then
ndup = ndup+1
dimd(ndup) = a(n)
end if
end do
else
dimd = new( dimb, typeof(a))
do n=0,dimb-1
ii := ind(a.eq.b(n))
if (.not.ismissing(ii(0))) then
ndup = ndup+1
dimd(ndup) = b(n)
end if
end do
end if
return(dimd(0:ndup))
end
A = (/ 1, 2, 3, 4, 5, 6, 7, 8, 9/)
B = (/ 2, 14, 7, 1/)
dup = get_dup_elements(A,B)
print(dup)
;; sort(dup) ; ascending order
On Wed, Dec 17, 2014 at 1:59 AM, Lin Wang <wanglin at post.iap.ac.cn> wrote:
> Dear all,
>
> Suppose:
> A = (/ 1, 2, 3, 4, 5, 6, 7, 8, 9/)
> B = (/ 2, 14, 7, 1/)
>
> If don't use loop, how to find the same elements between A and B such as
> (/1, 2, 7/)? Thanks.
>
> Best wishes,
> Lin Wang
>
>
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20141219/00287470/attachment.html
More information about the ncl-talk
mailing list