IDL基础
先列后行 arr=indgen(3,4)
SIZE(arr,/dimensions)
print ,where(arr gt7)
print,arr[where(arr gt 7)]
print,where(arr gt 7,cout,COMPLEMENT=com,ncomplement=ncom)
array[WHERE(array GT 5, /NULL)] = 5 arr=indgen(2,8);
arrReform=reform(arr,1,8);维数一定,改变个数
arrRebin=REBIN(arr,2,8);维数一定,改变每一维的倍数
arrCongrid=congrid(arr,1,1)
arrRotate5=ROTATE(ARR,5) arr=indgen(8)
print,arr[sort(arr)];sort()返回排序后的索引 print,uniq(arr,sort(arr));返回arr中的唯一值,即,不重复,如果用uniq(arr)则返回的是将相邻的相同值只取一个,不相邻的却去不了 print,arr1 # arr2;数组相乘
print,arr1 ## arr2;矩阵相乘 print,strmid(str,strlen(str)+1,strlen(str),/reverse_offset);反向截取字符串
file=dialog_pickfile()
print,file hdr=STRMID(file,pointPosition+1,strlen(file)-pointPosition-1) help,strtrim(string(a),1);转换为string并trim掉一边的空格 结构体
str={v1:5,v2:'dfdf'};定义匿名结构体
print,n_tags(str);结构体个成员个数
print,tag_names(str);结构体成员 名称
print,str.v1;某一成员的值 str3={two,inherits one,v4:'1'};two结构体继承自one,并向two添加v4变量
动态扩展
str4=create_struct(str2,'v5',findgen(5));创建结构体,并将str2中的数据也copy过来 指针
data=indgen(5);定义数组
ptr=ptr_new(data);定义指针------ptr_new()
Data=!null;制空
print,*ptr;打印指针,-------*ptr
ptr=ptr_new(data,/no_copy);创建指针后将data制空(undefined)
print,*pt=5;动态赋值还可以动态改变
print,*pt=indgen(5) 链表
obj_destroy,list;销毁list
Obj_valid(list);结果如果为0则说明销毁对象list 逻辑运算符
&&与
||或
~非 位运算符
AND
NOT
OR
XOR异或
if (keyword_set(xxx)) then begin;keyword_set()方法用于判断是否输入xxx 关键字继承
Plotex.por文件
pro plotex,x,y,_extra=_extra
plot,x,y,_extra=_extra ;_strict_extra=_extra严格关键字继承
end
然后在控制台中键入
IDL> x=findgen(100)/10
IDL> plotex,x,sin(x)
IDL> plotex,x,sin(x),thick=2,color=255
效果如下
pro plotex,x,y,_ref_extra=_extra;_ref_extra定义之后plotex只接受下面_extra=[]中指定的变量
plot,x,y,_extra=['thick','color']
End pro plotex,x,y,_strict_extra=_extra
plot,x,y,_extra=_extra ;_strict_extra=_extra严格关键字继承
end 算法优化 a=!null;结果:A UNDEFINED = !NULL
delvar,a;结果:A UNDEFINED = <Undefined>
IDL> a=4
IDL> b=5
IDL> c=temporary(a)+temporary(b)
IDL> help,c,a,b
C INT = 9
A UNDEFINED = <Undefined>
B UNDEFINED = <Undefined>
IDL> 时间控制
TIC:程序开始
TOC:程序结束
EX:
pro plotex,x,y,_ref_extra=_extra
tic
plot,x,y,_extra=['thick','color']
toc
End
结果:% Time elapsed: 0.0069999695 seconds.
IDL> z=shift(dist(40),20,20)
% Compiled module: DIST.
IDL> z=exp(-(z/10)^2)
IDL> surface,z
IDL>
输出为:
数据输入输出:
print,read,reads,string()
IDL> str='123 45 idl'
IDL> a=0
IDL> b=''
IDL> reads,str,a,b
IDL> help,a,b
A INT = 123
B STRING = ' 45 idl' Format---输出格式控制
[n]FC[+][-][width]
Opner 只读操作
Openw 写文件
Openu
File_search() 搜索特定的文件
Dialog_pickfile()
Fstat()
Eof() 判断是否到最后
Close 关闭逻辑设备号
Free_Lun 释放逻辑设备号
;按行读取数据
pro readAndWriteFile
file=dialog_pickfile();打开文件
openr,lun,file,/get_lun;读取文件
temp='';定义中间变量用来存储读取的数据
openw,lunOpen,'F:\envi\Temp\openw1.txt',/get_lun
while(~eof(lun))do begin
readf,lun,temp
printf,lunOpen,temp
Endwhile
free_lun,lun
free_lun,lunOpen
end ;分块读取数据
file=dialog_pickfile()
openr,lun,file,/get_lun
data1=strarr(20)
data2=findgen(6,30)
readf,lun,data1
readf,lun,data2
print,data1
print,data2 ;向导式读取数据
pro ascii_templatemethond
file=dialog_pickfile()
if ~file_test(file) then return
template=ascii_template(file);存为二进制文件
if size(template,/type) eq 2 then return;判断读进来的数据是否为整形
data=read_ascii(file,template=template);读取二进制文件
p=plot(data.(1));用读到的数据的第二列制图
help,data
print,data.(0)
End ;规则数据读取
pro array
file=dialog_pickfile()
openr,lun,file,/get_lun
readf,lun,firstLine
colum=0
row=0
type=0
reads,firstLine,colum,row,type
arr=make_array(colum,row,type=type)
readf,lun,temp1
readf,lun,temp2
;忽略两行
readf,lun,temp3
print,temp3
end 二进制文件读取
Readu
writeu 风云数据读取
file=dialog_pickfile()
openr,lun,file,/get_lun
headline=intarr(3)
point_lun,lun,20;跳过前面20个数据
readu,lun,headline
fyarr=bytarr(1201,1201)
point_lun,lun,2*1201;跳过两行
tvscl,fyarr 读图片
file=dialog_pickfile()
read_jpeg,file,data
tvscl,data,/true;true为1,从help data-->DATA BYTE = Array[3, 600, 400],3在第一个位置,
write_jpeg,"桌面\1.jpg",tvrd(true=1),quality=75,true=1
IDL基础的更多相关文章
- [IDL入门] 两个PPT,IDL上手
首先看看IDL能干什么,<Solving Real Problems with Computer Graphics>ppt是英文的,很精彩. 下载地址:http://pan.baidu.c ...
- 2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了
主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息 ...
- HTML5移动开发学习笔记之CSS3基础学习
CSS回顾 在学CSS3之前首先巩固下CSS的基础知识. 1.CSS框模型 举例子: #box { width: 70px; margin: 10px; padding: 5px; } 这个代码将出现 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- 【百度文库课程】Java语言基础与OOP入门学习笔记一
一. Java的历史与由来 原名Oak,针对嵌入式系统开发设计,语法与C/C++基本一致 二. Java语言特点 Java由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应 ...
- Java基础常见英语词汇
Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的 ['prəʊɡræmɪŋ]编程 OO: object ...
- RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大、最高效的方法之一。它为在分布式计算环境中运行的几乎所有应用程序提供基础。
RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大.最高效的方法之一.它为在分布式计算环境中运行的几乎所有应用程序提供基础.本文介绍 RPC 客户机和服务器之间基本的事件流 ...
- Apache Thrift学习之二(基础及原理)
Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.本文将从 Java 开发人员角度详细介绍 Apache Thrift 的架构.开发和部署,并且 ...
- JAVA面试基础
JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...
随机推荐
- ASP.Net MVC利用NPOI导入导出Excel
因近期项目遇到所以记录一下: 首先导出Excel: 首先引用NPOI包 http://pan.baidu.com/s/1i3Fosux (Action一定要用FileResult) /// <s ...
- Python科学计算(二)windows下开发环境搭建(当用pip安装出现Unable to find vcvarsall.bat)
用于科学计算Python语言真的是amazing! 方法一:直接安装集成好的软件 刚开始使用numpy.scipy这些模块的时候,图个方便直接使用了一个叫做Enthought的软件.Enthought ...
- MVC5 自定义表单错误信息
1.
- CSS3选择器学习笔记
CSS选择器总结: 一.基本选择器 1.通配选择器:[ * ] 选择文档中所以HTML元素. *{margin: 0;padding: 0;} /*选择页面中的所有元素并设置marg ...
- Codeforces Round #354 (Div. 2) C. Vasya and String
题目链接: http://codeforces.com/contest/676/problem/C 题解: 把连续的一段压缩成一个数,对新的数组求前缀和,用两个指针从左到右线性扫一遍. 一段值改变一部 ...
- 【BZOJ】【3676】【APIO2014】回文串
回文自动机/Manacher+SA 这道题可以用Manacher找出本质不同的回文串(令max增大的所有回文串),然后再用SA跑出来有多少相同. 还有一种做法就是回文自动机(Orz Hzwer)的裸题 ...
- .NET设计模式(13):享元模式(Flyweight Pattern)(转)
摘要:面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题.但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价.那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面 ...
- CSS兼容问题大全
1.chorme 最小字体的兼容性. 问题描述:ff和IE最小字体可设置为1px,可是chorme中文版最小字体是12px,小于12px的字体全部显示为12px.解决方案:chorme支持CSS3的, ...
- 安装hbase-0.98.9-hadoop2
1. download http://124.202.164.13/files/1244000005C563FC/www.eu.apache.org/dist/hbase/stable/hbase-0 ...
- php随机数怎么获取?一个简单的函数就能生成
小美女建了一个站,有些页面相似度比较高,想添加一些字段来实现差异化,比如用php随机数生成从10到100之间随机一个数字.其实会php的朋友几十个字符就能实现了,如下代码所示,简单吧?10代表最小值, ...