QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2808|回复: 0
打印 上一主题 下一主题

R语言入门基础之矩阵

[复制链接]
字体大小: 正常 放大

320

主题

15

听众

1335

积分

升级  33.5%

  • TA的每日心情
    奋斗
    2013-6-15 16:58
  • 签到天数: 24 天

    [LV.4]偶尔看看III

    群组第四届数学中国美赛实

    跳转到指定楼层
    1#
    发表于 2012-12-24 14:04 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定

    矩阵(matrix)

    矩阵生成函数matrix():matrix(data, nrow = , ncol = , byrow = F),其中,数据data是必须的,其他都是选择参数,可以不选。byrow = F默认为按列来排列数据,如果想要按行排列,令byrow = T。+ }, N( c( k" @# |2 @" F
    1、对角矩阵和单位阵。- n' [# A/ _- h$ h/ G( Z5 i* J
    例1:x <- 1:6; diag(x) #对角矩阵3 S4 b" \5 X' w# z% d4 w, J' A
    例2:y <- rep(1, 5); diag(y) #单位阵( E! e; E' D9 J7 S, p1 U

    5 h# E, o: {  P, _, _2、矩阵下标* Y+ a3 r0 M# C0 B
    例1:xx <- matrix(1:20, 4, 5)
    ( o6 A1 l! _5 h" t" I7 ?; S& Jxx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4]
    + H- C+ p9 H) i1 V# R, Nxx[2, ]; xx[ , 2]2 I. K7 U# E) T0 k
    4 U+ d# Q9 }* r/ P# c  J, a
    3、代数意义下的矩阵乘法"%*%"" H5 I/ r% H! X: o0 |
    例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3)
    5 \8 C, Q' N0 E, r$ Cyy %*% zz; zz %*% yy
    5 Q; y0 I# z) f$ ~! m5 j$ e: H5 R
    4、矩阵行和列的维数* y& D' Q. N1 ?; P# o% b
    例1:xx <- matrix(1:20, 4, 5)
    * r( Y+ f8 A! v$ G0 A. ~: `" _' K# ?dim(xx) #行和列的维数0 t# g  v+ A; X0 O# O
    nrow(xx); ncol(xx) #行数和列数
    3 A9 u9 U2 Y( t4 v2 R
    ; z( ~! }: [' B+ ^9 ~/ f& P5、矩阵的主要运算函数
    8 G$ w% l! ~0 E; a例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵- W* L6 S/ a  {4 d8 O' g
    is.matrix(x); is.matrix(y) #判断是否矩阵, h) C6 Q: l) O' ?" s/ q/ s8 D
    例2:   diag() #方阵对角线元素或者生成对角矩阵
    1 Z* T8 U+ Z, @+ c% Mapply() #对矩阵应用函数4 {/ {- A# ], l: O6 ]
    eigen() #求特征值和特征向量- ^5 Q% W; o% h$ }
    solve() #求逆矩阵8 T4 ~) l( ^  n' H1 }! z& o6 e  p3 z
    chol() #Choleski分解
    9 M1 B- r4 ]$ J8 osvd() #奇异值分解' W) K; w+ B) J7 \/ C1 v' h
    qr() #QR分解3 k; \9 A" |8 |. Y0 ~8 }0 O
    det() #求行列式
    . O  U5 {5 j) p: T+ x. `dim() #给出行列数+ Y3 W9 ]% Q7 F& Z9 V2 l% }* w; c
    t() #矩阵转置
    # k4 _( P! t5 t" m9 x# a6 ~" U2 U0 \/ q% E0 S* z& z
    6、矩阵合并5 O' z( @% u7 [' ]8 [
    例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)
    + C8 J3 S0 S2 {cbind(aa, bb) #按列合并
    1 j- A  g7 j) J, }rbind(aa, bb) #按行合并
    3 G. e8 x- |0 c9 _' C" B
    + s/ M2 B8 O7 a* v! Y- E. s( }! y7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。9 ?4 [, g- Y& j- V- [7 U2 Z$ w  r
    例1:xx <- matrix(1:20, 4, 5)/ S  [2 g" v# @  N& O& Y
    colMeans(xx) #列均值
    5 r& X3 W! i- q( h9 |  P% P3 E0 W. rcolSums(xx) #列和
    $ c  m( z8 c  X' @其余大部分都要用到apply()函数2 z1 G( |1 {& m$ |6 f9 y5 N
    例2:xx <- matrix(1:20, 4, 5)7 A* b& b6 a& P4 b% o. K  _9 ^
    apply(xx, 2, mean) #列均值,等同于colMeans(xx), O) C" x8 o! M. E1 C" z2 K
    apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。( e; s' y  i7 D  h. f8 W. F# r) ]
    apply(xx, 1, var) #行方差
    6 Y% b; o. l, ~apply(xx, 2, max) #每列最大值: ]: w: k+ d- P( d3 ^$ G4 p. Z
    apply(xx, 2, rev) #每列的数反排列( E( s: p3 G; T1 l. d

    & d8 t( G# d7 i6 R4 q8 R$ f) k6 t6 U! s0 N: K
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-14 18:25 , Processed in 0.386653 second(s), 50 queries .

    回顶部