我是靠谱客的博主 聪慧火,最近开发中收集的这篇文章主要介绍R语言--矩阵相关函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为什么80%的码农都做不了架构师?>>>   hot3.png

       R矩阵介绍:
  is.matrix()可以判断是否是矩阵,as.matrix()可以将数据框转换成矩阵,但是矩阵中要求所有的数据格式都是一致。
 1、可以使用matrix()创建新的矩阵,但是要输入一些参数可以通过
      args(matrix)      知道需要什么参数
结果如下:function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
     例: mm<-matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE,dimnames = list(c("row1", "row2"),c("C.1", "C.2", "C.3")))
          rownames(mm)可以查看行名
          rownames(mm)=c("1","2")可以修改行名
          dim(mm)得到矩阵的维数,nrow(),ncol()分别能得到矩阵的行列数
        生成矩阵是按列排列的
    方法二:array ( )函数构造多维数组
         x=array(1:20,dim=c(4,5))
    方法三:
2、 矩阵转置
      t(mm)
     若将函数t()作用于一个向量x,则R默认x为列向量,返回结果为一个行向量
     若想得到一个列向量,可用t(t(x))
3、矩阵的运算
     等维矩阵可以直接相加减即可相乘则使用%*%
     标量与矩阵相乘直接使用*即可例如:2*A
     矩阵的Hadamard积:即等维矩阵相同位置上的数字相乘,直接使用A*B即可
     函数det(x)将计算方阵x的行列式的值
4、矩阵对角元素相关运算
     例如要取一个方阵的对角元素diag(A)
     方法一:对一个向量应用diag()函数将产生以这个向量为对角元素的对角矩阵,所以diag(diag(A))将产生A矩阵的对角矩阵
     方法二:取对角矩阵A[row(A)!=col(A)]=0
     对一个正整数z应用diag()函数将产生以z维单位矩阵
5、矩阵求逆
     矩阵求逆可用函数solve(),应用solve(a, b)运算结果是解线性方程组ax = b,若b缺省,则系统默认为单位矩阵,因此可用其进行矩阵求逆
6、矩阵的特殊计算
     行列求和和平均值rowSums(),colSums(), rowMeans()
     行列求最大或者最小值使用apply:apply(A,1,max),其中1代表按行计算,2代表按列计算
     其中apply可以有很多种应用方法例如apply(A,2,function(x,a)x*a,a=2)
7、三角矩阵
     A[lower.tri(A)]=0其中lower.tri(A)将矩阵A中的下三角变成TRUE且diag即对角元素默认为FALSE,所以A[lower.tri(A)]=0就将上三角取出来了,如果加上diag=T,上对角矩阵不会取出来
     A[upper.tri(A)]=0取出下三角矩阵
8、row(),col()函数
    在R中定义了的这两个函数用于取矩阵元素的行或列下标矩阵,例如矩阵A={aij}m×n,
     row()函数将返回一个与矩阵A有相同维数的矩阵,该矩阵的第i行第j列元素为i,函数col()类似
 此函数也可以用于取三角矩阵x[row(x)>col(x)]=0
9、矩阵的分解下次再继续整理

转载于:https://my.oschina.net/piorcn/blog/314775

最后

以上就是聪慧火为你收集整理的R语言--矩阵相关函数的全部内容,希望文章能够帮你解决R语言--矩阵相关函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部