idl matlab python暑期课程lecture处理图像数据_第1页
idl matlab python暑期课程lecture处理图像数据_第2页
idl matlab python暑期课程lecture处理图像数据_第3页
idl matlab python暑期课程lecture处理图像数据_第4页
idl matlab python暑期课程lecture处理图像数据_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IDL语言-天文应1课程内IDL简介和语法基IDL编程和输入输图形显数据处理和分2课程计授课+练习:3小3课程目4 ctiveDataLanguage)是一门适用于应用5历原型:1970年代科罗拉多大学分校(UniversityofColoradoatBoulder)大气和空间物理的一个项第一个版本:1977,DavidStern,ResearchSystemsInc.(RSI) 版本 IDL6应用领医学影商7IDL工作8口9帮?SyntaxReturnValueArguments:关键字参数Examples:示例代码SeeAlso:其它相关函数Result=SIZE(Expression[,/L64][,/DIMENSIONS|,/FILE_LUN|,/FILE_OFFSET|,N_DIMENSIONS|,/N_ELEMENTS|,/SNAME,|,/STRUCTURE|,/TNAME|,/TYPE]练习打开文件模单击主菜单[文件新建文件],或者单击工具prox=indgen(360*2);findgen(360*2)断点和调prox=indgen(360*2)文件模FUNCTIONFUN_TOTAL,x,y特殊符续行符“$”主要应用于当一条语句过长或参数过多时IDL>print,’abcdef’+符“&”相当于两行代码写在一行之IDL>a=3&注释符“;”命令行模DB @A0 "B / BB Q 1DLM0F5NBGL 0F >)<EOB Q 7Q>)O3 B ;>)(0 >JL>)0F . >0F >) #6>) I2IH2>),'4@AM练习IDL语数据类#$'#110~Var=22-32768~Var=34-231~231-Var=8-263~263-Var=20~Var=40~232-Var=80~264-Var=44-1038~Var=!58-10308~Var=68-1038~Var=!9-10308~Var=70~-Var=‘ “"8-Stl={(4-Var=Ptr_New(&4-Var=Obj_New()-Ls=List(%-Hs=Hash(常例:”IDL7.1”、”2014/07/07”、”I’ma变 变量类型转2UINT([5.5,- ULONG([5.5,-5LONG64([5.5,- -ULONG64([5.5,-5 -DOUBLE([5.5,- -COMPLEX(1,(1.00000,DCOMPLEX(1, IDL>print,float(1)IDL>print,fix(1.3+1.8)

;整型转换为;浮点取整IDL> ;指定输出类 IDL>print,byte(1.2)IDL>48496566

;浮点转换为字;字符串转换为字IDL>print,string([65b,66b,67b]) 类型转换时,要注意转换前后的数据避免越IDL>IDL>-IDL>print,long(a)另外,需要注意整型变量的运IDL>IDL>print,result1.IDL>IDL>print,result在IDL程序中,可以随时修改变量类型,即变量类型具备动态IDL>num=6IDL>help,num IDL>num=num*1.2IDL>help,num 系统变 (,3-. # *#0π!"# !' 1""XYZ!练习y=x^2y=x*z+(x^2)/z数组:创建数维,下标顺序先列标、后行标,例如数组Array[3,是4行3IDL>IDL> =IDL>IDL> =Array[3,函数创0bytarr(bindgen(intarr(indgen(lonarr(lindgen(lon64arr(l64indgen(uintarr(uindgen(ulonarr(ulindgen(ulon64arr(ul64indgen(fltarr(findgen(dblarr(dindgen(complexarr(cindgen(plexarr(dcindgen(strarr(sindgen(创建33初始值为零的字节类型数组IDL>arrIDL> =Array[3,IDL>000000000IDL>arr=IDL>IDL>

= arr[m- arr[m-…arr[0,n- arr[1,n- arr[2,n- arr[m-1,n-IDL>arr=indgen(4,3)IDL>print,arr0123456789IDL>array=indgen(8)IDL>print,array IDL>3 IDL>array=IDL>indices=[0,1,3,5] IDL>array=IDL>subarray=IDL> =Array[5,IDL>vector=IDL> =010123456789运求大、求小和求数组求大(>value)是将数组中小于value的元素赋为value,求小(<value)是将数组中大于的值赋为value。求余(mod)是计算数组中各元素的余数。IDL>arr=IDL> IDL>print,arr> IDL>print,arr< IDL>print,arrmod 数组与数运原则是数组每个元素都与数进行运arr1= 234arr2=arr1+ 89数组与数组运结果中元素个数与参与运算数组中最少的元素个数一致 数组转换为一维数组来运IDL>arr1=IDL>arr2=IDL> IDL>arr1=IDL>arr2=IDL>print,arr1+ 数组合需要两个数组的行数或列数相IDL>a=IDL>b=IDLc[a,b行数相同,可以直接用IDL> =Array[6,IDL>d=IDL>ea],[d]];列数相同,需要用[[],[]]IDL>help,e =Array[2,相关函Size()函数:不设关 IDL>var= IDL>str= IDL>arr=IDL> IDL><Expression> =Result=IDL>arr=indgen(10)IDL>print,arr IDL>index=where(arrGTplement=c_count)IDL>print,count4IDL> IDL>6IDL>rinc_ndx

调整大Reform()函数:在不改变数组元素个数的前提下改变数组的维Reb)函数:可以修改数组大小,修改后数组的行数或列数必须是原数组行数或列数的整数倍。默认抽样算法是线性内插。Congrid()函数:可以将数组调整为同维任意大小。处理一维或者二维数组时,默认算法是最邻重采样;处理三维数组时,算法是线性内In()函数:可以将数组调整到同维任意大小,并支持任意定位插值。采用线性内插方数组反Result=IDL>arr=IDL> IDL> IDL> 数组转Transpose()函数组旋Rotate()函数:可以以90°的整数倍角度对数组进行旋转操Rot()函数:可以以任意角度对图像进行旋转,同时能进行放大和缩小控数组平Shift()函数可以基于指定平移量对任意一维平移,参数为正表示向前平移,为负表示向后移数组排Sort()函数实现数组的排序功能,返回结果是排序后数组的下标索IDL>arr=IDL> IDL> 求不同Uniq()函数能返回数组中相邻元素不同值的索引。若不相邻,则会认为是两个值。如果先对组进行排序,则可求出数组中包含的不同IDL>arr=IDL> IDL>arr1=IDL> 14求和:Total()15)求积:Product(16)阶乘:Factorial()17IDL>s1=IDL> STRING='abcdef'IDL>s2=strarr(4)IDL> STRING=可以用“+”IDL>s1='abc'IDL>s2='def'IDL>s3=s1+s2IDL> STRING=IDL>s1=IDL>9798IDL>%Typeconversionerror:UnabletoconvertgivenSTRINGto%Detectedat:0IDL> IDL> IDL>练习字符串处理函字符串操作在文 、命令行输入以及窗口参数输入时经常被用到。有以下字符串处理函数STRCMP(str1,str2,N,/FOLD_CASE):对两个字符串进行比较,如果存在N,只对前N个进行较;/FOLD_CASE表示模糊比PRESS(str1):删除字符串中的空STREGEX():正则表达 串的长度STRLOWCASE():将所有大写字STRMATCH(str1,str2):字符串str1中是否存在str2,可以使用通配TRMID(s1,,ff:从字符串str的处开始取出个字符;字符串第一个字符的位置为0 TRO()Destination,Source[,Position]:将一个字符串插入另一个字符串中STRTRIM(str,flag):移去字符串中的空格.Flag:0(移去尾部空格);1(移去首部空格);2(移去两STRUPCASE():将小写字母改成大IDL>file=IDL>basename=file_basename(file)IDL>print,basenameIDL>IDL>pos=IDL>if(pos[0]ne-1)thenIDL>str=IDL>str1=strmid(str,indgen(4)*5,5)IDL>help,str1 =IDL>abcdefghijklmnoIDL>var=IDL>str=string(var)IDL>help,str = IDL> ='4'IDL>str= IDL> STRING=结构结构体是一种复合变量,它可以是变量、数组等类型的集合,通常用于程序参数传递或数据交 IDL>struct1=IDL>**StructureSTR1,2tags,length=4,data 命名结构体支持结构体继承,例如,对结构体struct1继承并增加成员IDL>struct2={str2,inheritsstr1,c:3}IDL>help,struct2,/str**StructureSTR2,3tags,length=6,dataA0B0C3IDL>structs=replicate(struct2,10)IDL>help,structs =->STR2创 结构体和创建命名结构体类似,区别在于不需要给名字 = IDL> **Structure<3dc3cc0>,3tags,length=48,datalength=48,

结构IDL> IDL> 结构体成员变量个数和数据类型无法修改,赋值操作时自动进行类型转 .NAME=%Expressionmustbeascalarinthiscontext:%Executionhaltedat:$MAIN$ .NAME=678IDL> =

操作函

使用上述函数,遍历结构体成Prostruct1={a:1,b:2,c:3,d:'a'}tagnumber=n_tags(struct1)tagnames=tag_names(struct1)fori=0,tagnumber-1dobegin运算运算符用于执行代码的运算。IDL中的运算符分为数算符、逻辑运算数+--*/<^>IDL>print,2eq1IDL>print,2ne0IDL>print,2ne1大于等于IDL>print,2ge1IDL>print,2ge12IDL>print,2gt1IDL>print,2gt12IDL>print,2gt2小于等于(LE);小于矩阵运算1)数组乘“#”是第一个数组的列元素乘以第二个数组的行元素并求IDL>arr1=[[1,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论