IML中的那些函数(—)

浏览: 1640

前面对IML的一些基本概念做了简单介绍,不过我貌似忘记了非常重要的一点,就是矩阵语言的交互性,被同事特意提醒了一下反应过来,非常感谢我的这位同事。

关于下交互性这一概念,在很多编程语言里都会强调这一点,它被习惯性简称为“REPL”,即“Read- EVAL- Print- Loop”,读取-计算-输出-循环。简单点讲就是在即在屏幕上输入代码时,能够实时演示出代码执行效果。这样的好处在于在编程开发过程中,开发人员可以快速的向前或向后预览代码,而各个环节的代码实现效果也会进行实时的展示,以此即可测试自己所开发的程序在各个环节的反应。具体示范如下所示:首先以IML的标志性proc IML过程步语句开头:

proc iml;       

matrix={1 2,

                   3 4};

运行这一行代码(选中按F3),就可以在output界面看到matrix的结果,如下所示:  

             

max=matrix[<>]; /*对矩阵元素求最大值*/       

print max;        同样运行这两行代码(选中按F3),就可以在output界面看到matrix1的结果,如下所示:

如果想结束此次过程步,输入”quit;”就可以结束此次会话。

通过上述的代码输入方式,我们可以快速的得到代码输入的结果,并且方便的及时修改代码,保证程序运行方向的正确性。这也是区别于data步里的一个非常重要的特点。  

接下来为大家介绍IML中的自带的函数,这一部分函数我希望能够尽可能的都介绍一下,因为在矩阵计算中,函数的功能是相当强大的,一个合适的函数不但能够简化你的程序,还能够提升程序的效率。

1.abs(matrix)abs函数跟正常的函数一样,用于求矩阵元素的绝对值,如:

2.exp(matrix)表示对矩阵元素求指数,同data步用法。

3.int(matrix)表示对矩阵元素取整,同data步用法。

4.log(matrix)表示对矩阵元素求对数,同data步用法。

5.sqrt(matrix)表示对矩阵元素求平方根,同data步用法。

6.mod(matrix1,matrix2)表示对两矩阵对应元素求余数,对前后矩阵的要求同矩阵中的“+”,用法同data步,例如:

7.normal(matrix)/uniform(matrix)表示对矩阵进行随机数矩阵的模拟,一个是模拟正态分布,一个是模拟均匀分布。

8.all(matrix)、any(matrix)All函数用于判断一个矩阵里的所有元素是否非零,如果所有元素非零,则返回一个数值1,否则只要存在一个元素为0,则返回数值0;any函数则判断方式为至少存在一个元素为非零,则返回1,否则除非所有元素为0,则返回数值为0。例如:

9.loc(matrix)表示矩阵的位置函数,可用于求解矩阵元素不为0所在的位置,也可以用来求解满足一定条件的矩阵元素所在的位置,返回的是一个1×n的行向量,n表示矩阵元素不为0的个数,例如:

上述loc(a)表示矩阵元素不为0的位置,矩阵a中有3个,位置分别为1、3、4。

另外还可以求解满足条件的矩阵元素位置:

首先解释一下vecdiag这个函数,它表示矩阵的对角元素,返回的是一个1×n矩阵,因此在本次程序中vecdiag(x)={1 -2 3},loc(vecdiag(x)>0)则表示为{1 3},因此y=x[{1 3},]如上所示。

10.ncol(matrix)、nleng(matrix)、nrow(matrix)。这三个函数用来对矩阵进行行、列维度的统计和矩阵元素的长度统计,三个函数返回的均为一个标量。其中数值型矩阵矩阵元素默认为8,字符型则以矩阵中字符串长度最长的元素长度为准。如果要返回一个元素长度统计的矩阵,可以用length(matrix)。 

11.type(matrix)表示矩阵的类别,返回的是一个C(字符型)、U(不含任何值)、N(数值型)。例如:

 

大家先了解一下这些函数,消化一下。由于公众号还没有开通留言功能,所以各位如果对上述函数的介绍有不理解的地方可以在公众号直接给我留言,我会在后台回复大家。

 

未完待续。。。。。


 

 微信公众号:mingfeng07数据搬运工

个人微信:xiaopengpeng07


 欢迎加我来一块地玩耍啦!

推荐 2
本文由 mingfeng07 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

期待录制点视频教程,来学习,谢谢,关注了
这个可以有,尽请关注!

要回复文章请先登录注册