kieuanh的个人博客分享 http://blog.sciencenet.cn/u/kieuanh

博文

对矩阵进行同一位置求交运算

已有 3153 次阅读 2013-10-28 19:33 |个人分类:论文笔记|系统分类:科研笔记

;计算以为数组的交集
;pro jiaoji
;  compile_opt idl2
;  a=[1,1,23,4,5,1,2,3]
;  b=[12,2,23,2,5,5,6,33,45]
;  index=where(a eq b)
;  c=a[index]
;  print,index
;  print,c
;end

;计算二维数组的交集
;pro jiaoji
;  compile_opt idl2
;  a=[[1,2],[3,4]]
;  b=[[1,3],[2,4]]
;  index=where(a eq b,count,complement=index_c,ncomplement=index_n)
;  ;count为满足条件的元素个数,complement为不满足条件的数组元素下标,ncomlement为不满足条件的元素数组的个数
;  c=a[index]
;  print,'index=',index
;  print,'c=',cn
;end

;计算三维数组的交集
pro jiaoji
 compile_opt idl2
 a=[[[2,8,3,4],[2,2,3,1]],[[2,8,2,2],[2,3,4,6]],[[2,8,1,4],[6,2,2,6]]]
;  help,a
;  help,size(a,/dimension)
;  help,n_elements(a)
;第一种方法
;  ind=where(a[*,*,0] eq a[*,*,1],count,complement=c1) and where(a[*,*,0] eq a[*,*,2],complement=c2) and where(a[*,*,1] eq a[*,*,2],complement=c3)
;  inter=a[ind]
;或第二种方法
;ind=where(a[*,*,0] eq a[*,*,1] and a[*,*,0] eq a[*,*,2] and a[*,*,1] eq a[*,*,2],count,complement=ind_c,ncomplement=ind_c_count)
;print,ind_c_count
;第三种方法
for i=0,2 do begin  
 if (i+1 gt 2) then break
 ind=where(a[*,*,i] eq a[*,*,i+1],count,complement=ind_c)
;  print,'i=',i
;  print,'a[*,*,i]=',a[*,*,i]
;  print,'i+1=',i+1
;  print,'a[*,*,i+1]=',a[*,*,i+1]
endfor
 print,'ind=',ind
 print,'ind_c',ind_c
 
end

 



https://wap.sciencenet.cn/blog-1114664-736898.html

上一篇:并集交集差集求算
下一篇:ARCGIS中地理坐标、投影坐标定义及坐标转换
收藏 IP: 183.224.69.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 08:58

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部