SAS矩阵运算语言(IML)_第1页
SAS矩阵运算语言(IML)_第2页
SAS矩阵运算语言(IML)_第3页
SAS矩阵运算语言(IML)_第4页
SAS矩阵运算语言(IML)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、SAS矩阵运算语言(IML)1. IML中矩阵运算的基础知识IML内容概述矩阵的命名矩阵的创建矩阵的运算矩阵下标的使用1.1 IML内容概述在SAS系统中,矩阵的操作与运算功能由IML(interactive matrix language)模块来实现。SAS/IML是SAS系统一个非常重要的模块,它有着一套强大、灵活的运算语言。在IML的环境下不但可以进行矩阵的各种运算,而且还可以与DATA步一起使用实现各种复杂的计算和操作功能。在IML中,可以通过矩阵语言直接读取外部文件,并把此文件写成矩阵的格式,从而进行矩阵运算;也可以直接读取SAS数据集,并把此数据集写成矩阵的格式进行矩阵运算。1.2

2、 矩阵的命名1.2 矩阵的命名1.3 矩阵的创建在IML中创建矩阵的方式有三种:一种方法是直接输入创建矩阵;另一种是利用IML中的函数来产生矩阵;第三种是在IML的环境中把外部文件或SAS数据集转换成矩阵。1.3.1 直接输入法创建矩阵在进行矩阵操作时,直接输入法主要用来创建比较简单的矩阵。创建方法是将矩阵名称和它所要包含的元素以等号连接起来,等号左边为要创建的矩阵名称,等号右边为矩阵所要包含的元素。矩阵的元素一般情况下需要用大括号“”括起来。1.3.1 直接输入法创建矩阵1.创建标量1.3.1 直接输入法创建矩阵2.创建多元素的数值型矩阵当创建的数值型矩阵只包含一个元素时,创建方法就是上述标

3、量的创建方法。当矩阵包含多个元素时,要用大括号“”把等号右边的元素括起来,并用逗号“,”来分隔矩阵的行。1.3.2 利用函数创建矩阵1.BLOCK函数此函数的功能是根据给定的矩阵(须是方阵)来产生一个对角块矩阵。格式:BLOCK(matrix1,matrix2,Matrix15)1.3.2 利用函数创建矩阵2. I函数此函数的功能是产生一个单位阵,即对角线上的元素为1,其余元素都为0。格式:I(dimension):”dimension”为具体数字,表示方阵的阶数。1.3.2 利用函数创建矩阵3. J函数此函数的功能是根据给定的行数和列数重复产生矩阵中的某一元素。格式:J(nrow,ncol,

4、value)这里nrow为创建后矩阵的行数,ncol为创建后矩阵的列数,value为需要产生重复的元素。如果没有指定ncol的值,系统默认值为ncol=nrow,即取矩阵的列数等于其行数。如果没有指定value的值,系统默认此值为1。1.3.2 利用函数创建矩阵3. J函数1.3.2 利用函数创建矩阵4. DO函数此函数功能是根据指定的下界值、上界值以及增量来产生一个行向量。格式:DO(start,stop,increment)Start为下界值,stop为上界值,increment为增量。1.4 矩阵的运算IML中的运算符前缀运算符前缀运算符之指位于操作数前面的运算符,包括“+”、“-”等。

5、例如“-A”中的负号就称为前缀运算符,代表对矩阵A中所有的元素取负。中间运算符中间运算符是指位于操作数之前的运算符,包括“+、-、*、*、#、#、=”等。例如“A+B”中间的加号,表示矩阵A中的元素加上矩阵B中对应的元素。后缀运算符后缀运算符是指位于操作数后面的运算符。例如“A”中的“”表示对矩阵A求转置。1.4 矩阵的运算2. IML中的矩阵运算1.4 矩阵的运算矩阵运算实例1.5 矩阵下标的使用在IML中,下标的运用在矩阵的运算中占有非常重要的地位,它的使用更能体现IML语言的灵活与便捷。下标在使用时需要置于中括号“ ”之中。格式:operandrow,column;operand为矩阵名

6、字,也可以是一个表达式。row为行下标,一般为数字或表达式,用以选择矩阵的行。column为列下标,为数字或表达式,用以选择矩阵的列。1.5 矩阵下标的使用1. 选定矩阵的单个元素使用行、列下标定位例如:A=4 5,6 7,8 9;B=A2,1;B表示取A第二行第一列的元素。只使用一个下标定位例如:A=4 5,6 7,8 9;B=A5;B表示从左到右逐行数,取矩阵A中的第五个(即第3行第1列)元素。1.5 矩阵下标的使用2.选定矩阵的整行元素在选定已知矩阵的某一整行元素时,只指定格式中行数的值,而不指定列数的值,表示选择指定行中的所有元素。例如:A=4 5,6 7,8 9;B=A2, ;这里B

7、表示取矩阵A第二行所有的元素组成的矩阵。3.选定矩阵的整列元素在选定已知矩阵的某一整列元素时,只指定列值,而不指定行值。例如: A=4 5,6 7,8 9;B=A ,2;这里B表示去矩阵A第二列所有元素组成的矩阵。1.5 矩阵下标的使用4.选定矩阵的子矩阵选定矩阵的子矩阵是指运用下标的功能从已知的矩阵中选择以部分元素,使这些元素重新组成一个矩阵。1.5 矩阵下标的使用5.改变矩阵的内容可以运用下标来修改已知矩阵中的单个元素、整行、整列元素或子矩阵。这里被改矩阵的表达式放在等号的左边,中括号中用下标指定需要修改元素的位置,修改的目标数值或子矩阵放在等号的右边。1.5 矩阵下标的使用5.改变矩阵的

8、内容矩阵下标还可以用来进行矩阵的计算,这时“row”与“column”被指定为运算符。常见的矩阵下标运算符有8种。1.5 矩阵下标的使用2 IML程序设计语言IML具有特定的程序设计环境,包含许多其他SAS模块所不具有特点。在IML环境下,可以通过特定语句来控制整个程序的执行。IF-THEN/ELSE语句模块的定义与实施DOEND语句跳转(JUMPING)语句停止语句IF-THEN/ELSE语句一般格式IF 表达式 THEN 语句1;ELSE 语句2;首先用IF引出一个表达式,然后对它的内容进行检测,加入检测结果为真,就执行THEN后的语句1;加入检测的结果为假,则执行ELSE后的语句2。在I

9、F-THEN/ELSE语句中,可以使用嵌套的形式来进行多次假设。模块的定义与实施在IML中,模块(Modules)是一个新的名词,主要用于:在一个完成的程序中,创建一组语句,使之作为一个单位,方便其他语句的调用。更确切的说,就是在IML中产生一个子程序或函数。在IML中,创建一个单独的编程环境,即产生一个模块。在这个模块中定义变量,使这些变量的功能只限于这个模块中。模块的定义与实施模块也被称为函数或子程序,它以START语句开始,以FINISH语句结束。当模块里只有一个参数时,就被称为函数(不同于IML自身函数,模块中的函数为自定义函数),可以像IML自身的函数一样被调用;当模块里的参数超过一

10、个时,就被称为子程序。在IML中,当调用一个函数时,直接指定这个函数的名字即可;当调用子程序时,就必须通过CALL语句或RUN语句才能实现。模块的定义与实施DPS简介DPS简介DPS是目前国内唯一一款可在功能上替代国外大型统计软件(如SAS、SPSS)、价格上适合于国内用户的具自主知识产权、技术上达到国际先进水平的国产多功能统计分析软件。 完善的统计分析功能涵盖了所有统计分析内容,是目前国内统计分析功能最全软件包。DPS的一般线性模型(GLM)可以处理各种类型试验设计方差分析,特别是一些用SPSS菜单操作解决不了、用SAS编程很难折腾的多因素裂区混杂设计、格子设计等方差分析问题,用DPS菜单操作可轻松搞

温馨提示

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

评论

0/150

提交评论