QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2872|回复: 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! D; J/ A+ s1 `1、对角矩阵和单位阵。
    ) ]/ O* b2 w( U& _+ K例1:x <- 1:6; diag(x) #对角矩阵
    * G1 x8 e- _% B. \. N例2:y <- rep(1, 5); diag(y) #单位阵
    ( g# D( g/ t# T7 z' @% b8 O- i6 z- r% z% b9 M8 }
    2、矩阵下标. g% [, E2 v1 v
    例1:xx <- matrix(1:20, 4, 5); B$ r( H  V7 w0 @0 i
    xx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4]
    . P& n+ q5 w, r1 |+ qxx[2, ]; xx[ , 2]% @% d* O6 j) X; L$ e

    * C8 Z- e; k( R5 R; L- a% }3、代数意义下的矩阵乘法"%*%"& p5 }0 n. J% }- c4 g
    例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3). Z- X. s" L# ?0 i9 H  c( k
    yy %*% zz; zz %*% yy0 ^* h$ Q+ l- Z& O( j: ]% N9 Q3 K
    3 y2 [) m% Q. {7 [
    4、矩阵行和列的维数* w! o+ a+ c- T  I
    例1:xx <- matrix(1:20, 4, 5)- H) J+ f3 d2 o6 n  a) F
    dim(xx) #行和列的维数
    / k) W2 T' b4 o+ f( I* {$ Hnrow(xx); ncol(xx) #行数和列数, P& E; I0 F  x/ f6 b% o
      h1 W6 L' P9 ?6 l& C9 A
    5、矩阵的主要运算函数
    0 }4 }( |! D: q0 f  H/ v$ w) y例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵1 a6 c" @) J# O$ N. [) y& C- b
    is.matrix(x); is.matrix(y) #判断是否矩阵# M4 b) r" ^. K5 }
    例2:   diag() #方阵对角线元素或者生成对角矩阵
    / ?3 E0 O+ y" Q( }! yapply() #对矩阵应用函数
    , Q: G8 s/ p, P5 ^9 u5 |  j6 P4 jeigen() #求特征值和特征向量5 T( o! ?5 C1 V5 l: r) ~
    solve() #求逆矩阵
    1 i0 n& U/ n& \( H2 D* ~/ L& h% Dchol() #Choleski分解
      C# q3 @5 T) t: csvd() #奇异值分解. a; E  y  x( A
    qr() #QR分解
    - V% ^2 |/ x& g9 _% L2 Kdet() #求行列式
    ) ?8 }0 f2 `8 u9 U- o# ^( idim() #给出行列数! G+ k0 @9 S! o  z0 Y# H2 u6 z
    t() #矩阵转置6 ~% z4 O# q5 D$ J: s0 ^; X

    : O  N* }$ o. D: k/ r. p6、矩阵合并8 g! e8 d( H5 r- q% H2 o. i0 D" ^
    例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)% i6 p( a/ h* c7 D( T" l2 U7 _6 |
    cbind(aa, bb) #按列合并0 ?% F9 x2 u+ b' [) A
    rbind(aa, bb) #按行合并
    # I0 d1 F( J7 y# b9 F* _, }- k& Q0 G1 g5 S6 T( a% ^. z4 D0 j
    7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。
    9 c( N7 v: X' c: U+ a例1:xx <- matrix(1:20, 4, 5)
    8 e1 W5 o2 Q) T4 B6 i, ]colMeans(xx) #列均值3 O; T( F5 a3 F) X+ d- D
    colSums(xx) #列和
    1 B6 @/ D: K! p' @其余大部分都要用到apply()函数/ Q+ p) d/ L' Y: b
    例2:xx <- matrix(1:20, 4, 5)% n2 [( Z( h+ V! ^6 J# u3 S9 @' T
    apply(xx, 2, mean) #列均值,等同于colMeans(xx)3 j1 C' d9 l4 x- S2 G
    apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。
    - ~4 X. U: ]" [apply(xx, 1, var) #行方差/ k0 q5 v- z% b* n4 y0 H
    apply(xx, 2, max) #每列最大值2 V! u# f- [7 d9 b. w0 ^3 N- a  M
    apply(xx, 2, rev) #每列的数反排列
    1 |7 G5 B. r2 G! I6 \( j* D! g' }% Z8 `$ c7 t  b% W9 _* s% @
    * [, X! w2 V7 k( w! }* t
    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-8-25 16:03 , Processed in 0.420889 second(s), 49 queries .

    回顶部