admin 管理员组文章数量: 1184232
2024年3月21日发(作者:阿里云盘matlab下载)
第八讲_PROC IML
第八讲: SAS交互式矩阵语言—IML编程(PROC IML)
§8.1 引言
SAS/IML是SAS的一个过程,IML(Interactive Matrix Language)是交互式矩阵语言
的简称。IML中的基本处理单位是矩阵,所有运算和操作都是针对矩阵的。数值被看成1×
1的矩阵。
SAS/IML中的矩阵和DATA步以及SAS环境中的数据集可以双向流动:数据集可以读
入到IML中形成矩阵,IML中的矩阵可以读出为SAS数据集。
进入IML环境的方法是执行语句PROC IML;
§8.2 IML语言要素
I、矩阵
1、矩阵的定义:矩阵是一个二维数阵,分为行和列。构成矩阵的数据称为元素,可以
是数值也可以是字符。
1×N
矩阵称为行向量,
M×1
矩阵称为列向量,1×1矩阵称为标量
(scalar)。矩阵的名字与SAS文件的命名规则相同(以字母或下划线开头,以字母数字和
下划线组成,长度不超过32个字符)。
2、矩阵的创建:矩阵可以通过元素列示定义,也可以赋值来创建。
(1)元素列示法:
proc iml;
a=100;
b={1 2,3 4,5 6};
注:元素重复的方法:创建矩阵时,如果需要连续重复输入一个数值作为矩阵的元素,则可采
用元素重复因子(repeating Factor)实现。重复因子是重复次数加方括号,放在需要重复
的元素之前。例如
proc iml;
a=100;
b={[2]1 2,3 [2]4,[2]5 6};
print b;
结果为
1 1 2
3 4 4
5 5 6
(2)赋值法:赋值法通过赋值语句对已有的矩阵进行与运算(包括函数运算)创建矩阵。
一般形式:矩阵名=表达式;
proc iml;
b={[2]1 2,3 [2]4,[2]5 6};
c=2#b;
print c;
结果为
2 2 4
6 8 8
10 10 12
3、矩阵表达式:表达式是由矩阵、函数以及运算符连接的式子,运算结果为矩阵。
(1)矩阵运算符:
第八讲_PROC IML
按表达式中所在位置,运算符可以分为前缀运算符(prefix)、中缀运算符(infix)和后缀运
算符(postfix)。
算符 类型 功能 举例
-
+
-
:
*
#
@
**
##
/
||
//
<>
><
&
|
^
<
>
=
<=
>=
^=
`
[ ]
前缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
中缀
前缀
中缀
中缀
中缀
中缀
中缀
中缀
后缀
后缀
矩阵取负号
矩阵相加
矩阵相减
矩阵相乘
矩阵逐元素相乘
矩阵直积
特例:A+1, 将A的各个元素加1
特例:A-1, 将A的各个元素减1
特例:A#3,将A的各个元素乘3
又称Kroneck积
A##2将A的每个元素平方;A##B将A的每个元素
按对应的B中元素取次方。
特例:A/2将A的各个元素除以2,而2/A则是将A
的各个元素除以2得出的矩阵
将具有相同行数的两个矩阵水平拼接为一个矩阵
将具有相同列数的两个矩阵垂直拼接为一个矩阵
逐元素比较两个矩阵,新矩阵元素为其中大的
逐元素比较两个矩阵,新矩阵元素为其中小的
逐元素检查两个矩阵,如果对应元素全非0,新矩阵
元素为1,否则为0。特例:A&1,A&0
逐元素检查两个矩阵,如果对应元素至少一个非0,
新矩阵元素为1,否则为0。特例:A&1,A&0
逐元素检一个矩阵,如果对应元素为0,新矩阵元素
为1,否则为0。
逐元素比较两个矩阵,比较关系式成立,则新矩阵元
素为1,否则为0。特例:A>2
逐元素比较两个矩阵,比较关系式成立,则新矩阵元
素为1,否则为0。特例:A<2
逐元素比较两个矩阵,比较关系式成立,则新矩阵元
素为1,否则为0。特例:A=2
逐元素比较两个矩阵,比较关系式成立,则新矩阵元
素为1,否则为0。特例:A<=2
逐元素比较两个矩阵,比较关系式成立,则新矩阵元
素为1,否则为0。特例:A>=2
逐元素比较两个矩阵,比较关系式成立,则新矩阵元
素为1,否则为0。特例:A^=0
见后面内容
创建指标向量 I=7:10 创建行向量i=(7 8 9 10)
矩阵次方 A**2=A*A必须为方阵
逐元素次方
逐元素相除
水平拼接
垂直拼接
逐元素比较并取大
逐元素比较并取小
逐元素全非0
逐元素有非0
逐元素检查是否0
逐元素比较大小
逐元素比较大小
逐元素比较相等
逐元素比较大小
逐元素比较大小
逐元素比较不相等
取转置(tanspose) A`
下标算符
(2)矩阵下标(Subscripts)和下标缩减算符(subscript Reduction Operators):矩阵下标运
算主要是有选择地对矩阵的一部分(元素、行列、子矩阵)进行的运算,包括从矩阵取子矩
阵。
版权声明:本文标题:SAS第八讲—IML编程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711020374a584383.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论