先列后行

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基础的更多相关文章

  1. [IDL入门] 两个PPT,IDL上手

    首先看看IDL能干什么,<Solving Real Problems with Computer Graphics>ppt是英文的,很精彩. 下载地址:http://pan.baidu.c ...

  2. 2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了

    主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息 ...

  3. HTML5移动开发学习笔记之CSS3基础学习

    CSS回顾 在学CSS3之前首先巩固下CSS的基础知识. 1.CSS框模型 举例子: #box { width: 70px; margin: 10px; padding: 5px; } 这个代码将出现 ...

  4. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  5. 【百度文库课程】Java语言基础与OOP入门学习笔记一

    一. Java的历史与由来 原名Oak,针对嵌入式系统开发设计,语法与C/C++基本一致 二. Java语言特点 Java由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应 ...

  6. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

  7. RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大、最高效的方法之一。它为在分布式计算环境中运行的几乎所有应用程序提供基础。

    RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大.最高效的方法之一.它为在分布式计算环境中运行的几乎所有应用程序提供基础.本文介绍 RPC 客户机和服务器之间基本的事件流 ...

  8. Apache Thrift学习之二(基础及原理)

    Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.本文将从 Java 开发人员角度详细介绍 Apache Thrift 的架构.开发和部署,并且 ...

  9. JAVA面试基础

    JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...

随机推荐

  1. 在Mac中如何显示和隐藏文件

    1.显示Mac隐藏文件的命令: 在终端中输入"defaults write com.apple.finder AppleShowAllFiles YES":  鼠标单击窗口左上角 ...

  2. 安装Windows7出现:”安装程序无法创建新的系统分区 也无法定位系统分区“ 终极解决方案

    参考:地址 解决方法: 1.先格式化一下你要装的那个盘,然后,拔出U盘,啥也别动,只拔出U盘就行,再装上U盘,然后刷新一下[选硬盘那里的高级选项中有格式化和刷新],再选择要安装的硬盘点下一步,OK了, ...

  3. 在Action中以Struts2的方式输出JSON数据

    参考地址;http://blog.csdn.net/itdada/article/details/21344985

  4. Oracle窗口函数显示想要的行数

    Oracle中支持窗口函数ROW_NUMBER(),其用法和 MSSQLServer2005中相同,比如我们 执行下面的 SQL语句: SELECT * FROM ( SELECT ROW_NUMBE ...

  5. DEVICE DRAW VERTEX BUFFER TOO SMALL

    D3D11 WARNING #356 这个傻warning的意思看起来是说vertex buffer 太小了 描述是这样的: Vertex Buffer at the input vertex slo ...

  6. 引擎设计跟踪(九.8) Gizmo helper实现与多国语言

    最近把gizmo helper的绘制做好了. 1.为了复用代码,写了utility来创建sphere, cube, cylinder, plane, ring(line), circle(solid) ...

  7. Android 4.4 KitKat, the browser and the Chrome WebView

    Having V8 as the JavaScript engine for the new web view, the JavaScript performance if much better, ...

  8. c#中的线程一

    一.使用线程的理由 1.可以使用线程将代码同其他代码隔离,提高应用程序的可靠性. 2.可以使用线程来简化编码. 3.可以使用线程来实现并发执行 二.基本知识 1.进程与线程:进程作为操作系统执行程序的 ...

  9. centos 安装软件

    1)一种是软件的源代码,您需要自己动手编译它.这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz).2)另一种是软件的可执行程序,你只要安装它就可以了.这种软件安装包通常被是一个RP ...

  10. POJ 3243 Clever Y (求解高次同余方程A^x=B(mod C) Baby Step Giant Step算法)

    不理解Baby Step Giant Step算法,请戳: http://www.cnblogs.com/chenxiwenruo/p/3554885.html #include <iostre ...