SASIML模块与矩阵运算

上传人:宝路 文档编号:5690769 上传时间:2017-09-07 格式:DOC 页数:16 大小:82.50KB
返回 下载 相关 举报
SASIML模块与矩阵运算_第1页
第1页 / 共16页
SASIML模块与矩阵运算_第2页
第2页 / 共16页
SASIML模块与矩阵运算_第3页
第3页 / 共16页
SASIML模块与矩阵运算_第4页
第4页 / 共16页
SASIML模块与矩阵运算_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《SASIML模块与矩阵运算》由会员分享,可在线阅读,更多相关《SASIML模块与矩阵运算(16页珍藏版)》请在金锄头文库上搜索。

1、SAS/IML 模块与矩阵运算一、SAS/IML 模块1SAS/IML 模块简介IML 是 Interactive Matrix Language 的缩写,即交互式矩阵语言,也是一种程序设计语言。它提供了程序设计语言所需的条件转移和循环等一系列完整的程序流控制语句。SAS/IML模块提供了一个动态的交互式环境,在此环境下,用户按照 IML 语法输入语句,然后系统交互的输出计算结果。SAS/IML 模块还提供了用户自定义函数和子程序(过程)的功能。IML 语句、函数、子程序、及用户自定义函数和子程序按照一定的规则组成 IML 程序。IML 程序可存放在外部文件中,可随时递交给系统连续执行。2.

2、IML 变量所有 IML 变量都为矩阵类型变量,最小为 11 阶矩阵。矩阵元素可为数值型,也可为字符型,缺失值用点号“.”表示。多维矩阵每一行的元素个数(列数)必须相同。1) 数值型矩阵中的元素可以是整数、小数,也可以用科学计数法表示,如 1E-5。所有数值均以双精度格式存储。2) 字符型矩阵中,若元素中含有空格或某些特殊字符,如“?” 、 “=”、 “*”、 “:”、 “(”、 “)”等,则须将字符串用单引号“”或双引号“”括起来。在同一个字符型矩阵中,每个元素的字符串长度不必相等,但存储的长度等于最大字符串的长度,此长度不超过32676。3) IML 变量的取名规则:(1) 可由下划线、字

3、母和数字组成,但不能以数字开头。(2) 不可超过 8(32)个字符。(3) 不区分大小写。3. 启动和退出 IML 模块1) 启动 IML 模块PROC IML;2) 退出 IML 模块QUIT;4. 设置和关闭 IML 交互模式1) 设置 IML 交互模式RESET PRINT;2) 关闭 IML 交互模式RESET NOPRINT;二、矩阵变量的建立矩阵变量可通过定义,赋值,或函数返回来建立。1通过矩阵定义建立矩阵变量1) 定义矩阵的语法 ;示例(1) 11 阶矩阵(数)a=12;a=. ;a=hi there;a=Hello;(2) 行向量x=1 2 3 4 5 6;(3) 字符型行向量

4、a=abc defg;print a;结果:AABC DEFG(4) 字符型行向量a=abc DEFG;print a;结果:Aabc DEFG(5) 列向量y=1,2,3,4,5;(6) 3 2 阶矩阵z=1 2, 3 4, 5 6;2) 重复因子的使用重复因子符号用表示 。例如:answer=2 Yes, 2 No;等价于answer=Yes Yes, No No;3) 重新定义或赋新值a=1 2 3, 6 5 4;a=Sales Marketing Administration;2. 通过赋值建立矩阵变量1) 语法 ;2) 示例x = 1,2,3;y = 3,2,1;z = x+y;3.

5、 通过函数返回建立矩阵变量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) 功能对应元素相除,或各元素除以给定的数,结果为同阶

6、矩阵。(3) 示例6) 乘方 (1) 语法矩阵 * 数(2) 功能矩阵乘方。其中给定的 数 为大于等于 1 的整数,若非整数将自动取整。 A*(-1)等于 A 的逆矩阵。(3) 示例7) 对应元素相乘(1) 语法矩阵 1#矩阵 2矩阵# 数矩阵# 向量(2) 功能(3) 示例a=1 2,3 4;b=4 8,0 5;c=a#b;矩阵 C 中的内容为: C 2 rows 2 cols (numeric)4 160 20d=10,100;ad=a#d;矩阵 AD 中的内容为:AD 2 rows 2 cols (numeric)10 20300 400若改为:d=10 100;ad=a#d;则矩阵 A

7、D 中的内容为:AD 2 rows 2 cols (numeric)10 20030 4008) 对应元素乘方(1) 语法矩阵 1 # 矩阵 2矩阵 # 数(2) 功能若 矩阵 1 中的元素有负数,则 矩阵 2 中相应的元素必须为整数。(3) 示例例 1:a=1 2 3;b=a#3;则矩阵 B 中的内容为:B 1 row 2 cols (numeric)1 8 27例 2:b=a#.5;则矩阵 B 中的内容为:B 1 row 3 cols (numeric)1 1.4142136 1.7320508例 3:a=-1 7 6,2 0 -8;b=-a;则矩阵 B 中的内容为:B 2 rows 3

8、cols (numeric)1 -7 -6-2 0 89) 元素取相反数(1) 语法 矩阵(2) 功能(3) 示例x = 1,2,1;y = -x;2. 矩阵的比较运算1) 比较运算符= = = 2) 功能比较矩阵的相应元素,产生一个同阶的矩阵。若比较成立,则结果矩阵中的相应元素为,否则为 0。 3) 语法矩阵 1矩阵 2矩阵 1=矩阵 2矩阵 1=矩阵 2矩阵 1=矩阵 2矩阵 1 或矩阵 2 均可用单一数值代替,此时将把矩阵中的每一个元素与此数值进行比较。4) 示例例 1:a=1 7 3,6 2 4;b=0 8 2,4 1 3;c=ab;则矩阵 C 中的内容为:C 2 rows 3 col

9、s (numeric)1 0 11 1 1例 2:d=(a=2);则矩阵 D 中的内容为:D 2 rows 3 cols (numeric)0 1 11 1 13. 矩阵的合并与拆分1) 水平合并(1) 语法矩阵 1 | 矩阵 2(2) 功能(3) 示例例:a=1 1 1,7 7 7;b=0 0 0,8 8 8;c=a|b;则矩阵 C 中的内容为:C 2 rows 6 cols (numeric)1 1 1 0 0 07 7 7 8 8 8例 2:b=A B C,D E F;c=GH IJ,KL MN;a=b|c;则矩阵 A 中的内容为:A 2 rows 5 cols (character,

10、size 2)A B C GH IJD E F KL MN2) 垂直合并(1) 语法矩阵 1 /矩阵 2(2) 功能(3) 示例例 1: a=1 1 1,7 7 7;b=0 0 0,8 8 8;c=a/b;则矩阵 C 中的内容为:C 4 rows 3 cols (numeric)1 1 17 7 70 0 08 8 8例 2:b=AB CD,EF GH;c=I J,K L,M N;a=b/c;则矩阵 A 中的内容为:A 5 rows 2 cols (character, size 2)AB CDEF GHI JK LM N1) 水平合并(1) 语法matrixrows,columnsmatri

11、xelementsmatrixrows,columnsmatrixelements矩阵 1 | 矩阵 2(2) 功能(3) 示例例: x=1 2 3,4 5 6,7 8 9;a=3;m=x2,a;则矩阵 M 中的内容为:M 1 row 1 col (numeric)6a=1:3;m=x2,a;则矩阵 M 中的内容为:M 1 row 3 cols (numeric)4 5 64. 矩阵的转置T( matrix)5. 矩阵的逻辑运算& | perform elementwise logical comparisons matrix1&matrix2matrix&scalarmatrix1|matr

12、ix2matrix|scalarmatrix6. 矩阵的直积(Kronecker 积)运算matrix1matrix2a=1 2,3 4;b=0 2;c=ab;C 2 rows 4 cols (numeric) 0 2 0 40 6 0 8d=ba;D 2 rows 4 cols (numeric)0 0 2 40 0 6 8d=ba;results in D 2 rows 4 cols (numeric)0 0 2 40 0 6 8I=7:10;results in I 1 row 4 cols (numeric)7 8 9 10If value1 is greater than value2, a reverse order index is created. For example, the statement r=10:6;results in the row vector R 1 row 5 cols (numeric)10 9 8 7 67. 矩阵运算的优先级Table 1: 运算符的优先级优先级分类 运算符I (最高) 下标运算 -(前缀运算) # *II * # = = =VI & VII (最低) |

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号