预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SAS/IML模块与矩阵运算 一、SAS/IML模块 1.SAS/IML模块简介 IML是InteractiveMatrixLanguage的缩写,即交互式矩阵语言,也是一种程序设计语言。它提供了程序设计语言所需的条件转移和循环等一系列完整的程序流控制语句。SAS/IML模块提供了一个动态的交互式环境,在此环境下,用户按照IML语法输入语句,然后系统交互的输出计算结果。 SAS/IML模块还提供了用户自定义函数和子程序(过程)的功能。IML语句、函数、子程序、及用户自定义函数和子程序按照一定的规则组成IML程序。IML程序可存放在外部文件中,可随时递交给系统连续执行。 2.IML变量 所有IML变量都为矩阵类型变量,最小为11阶矩阵。矩阵元素可为数值型,也可为字符型,缺失值用点号“.”表示。多维矩阵每一行的元素个数(列数)必须相同。 1)数值型矩阵中的元素可以是整数、小数,也可以用科学计数法表示,如1E-5。所有数值均以双精度格式存储。 2)字符型矩阵中,若元素中含有空格或某些特殊字符,如“?”、“=”、“*”、“:”、“(”、“)”等,则须将字符串用单引号“'”或双引号“"”括起来。在同一个字符型矩阵中,每个元素的字符串长度不必相等,但存储的长度等于最大字符串的长度,此长度不超过32676。 3)IML变量的取名规则: (1)可由下划线、字母和数字组成,但不能以数字开头。 (2)不可超过8(32)个字符。 (3)不区分大小写。 3.启动和退出IML模块 1)启动IML模块 PROCIML; 2)退出IML模块 QUIT; 4.设置和关闭IML交互模式 1)设置IML交互模式 RESETPRINT; 2)关闭IML交互模式 RESETNOPRINT; 二、矩阵变量的建立 矩阵变量可通过定义,赋值,或函数返回来建立。 1.通过矩阵定义建立矩阵变量 1)定义矩阵的语法 <矩阵变量名>=<矩阵初值>; 示例 (1)1×1阶矩阵(数) a=12; a=.; a='hithere'; a="Hello"; (2)行向量 x={123456}; (3)字符型行向量 a={abcdefg}; printa; 结果: A ABCDEFG (4)字符型行向量 a={'abc''DEFG'}; printa; 结果: A abcDEFG (5)列向量 y={1,2,3,4,5}; (6)3×2阶矩阵 z={12,34,56}; 2)重复因子的使用 重复因子符号用表示[]。例如: answer={[2]'Yes',[2]'No'}; 等价于 answer={'Yes''Yes','No''No'}; 3)重新定义或赋新值 a={123,654}; a={'Sales''Marketing''Administration'}; 2.通过赋值建立矩阵变量 1)语法 <矩阵变量名>=<表达式>; 2)示例 x={1,2,3}; y={3,2,1}; z=x+y; 3.通过函数返回建立矩阵变量 1)语法 <矩阵变量名>=函数名(<参数表>); 2)示例 x=SQRT({1,2,3}); 三、矩阵的运算及其IML运算符 1.矩阵的算术运算 1)矩阵的算术运算运算符 运算符含义+加-减*乘/除**乘方#对应元素相乘##对应元素乘方-各元素取相反数 2)加 (1)语法 矩阵1+矩阵2 矩阵+数 (2)功能 (3)示例 3)减 (1)语法 矩阵1-矩阵2 矩阵-数 (2)功能 (3)示例 4)乘 (1)语法 矩阵1*矩阵2 矩阵*数 (2)功能 (3)示例 5)除 (1)语法 矩阵1/矩阵2 矩阵/数 (2)功能 对应元素相除,或各元素除以给定的数,结果为同阶矩阵。 (3)示例 6)乘方 (1)语法 矩阵**数 (2)功能 矩阵乘方。其中给定的数为大于等于–1的整数,若非整数将自动取整。A**(-1)等于A的逆矩阵。 (3)示例 7)对应元素相乘 (1)语法 矩阵1#矩阵2 矩阵#数 矩阵#向量 (2)功能 (3)示例 a={12, 34}; b={48, 05}; c=a#b; 矩阵C中的内容为: C2rows2cols(numeric) 416 020 d={10,100}; ad=a#d; 矩阵AD中的内容为: AD2rows2cols(numeric) 1020 300400 若改为: d={10100}; ad=a#d; 则矩阵AD中的内容为: AD2rows2cols(numeric) 10200 30400 8)对应元素乘方 (1)语法 矩阵1##矩阵2 矩阵##数 (2)功能 若矩阵1中的元素有负数,则矩阵2中