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):矩阵下标运

算主要是有选择地对矩阵的一部分(元素、行列、子矩阵)进行的运算,包括从矩阵取子矩

阵。


本文标签: 矩阵 元素 运算 运算符 成立