QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2810|回复: 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。7 {- n+ J* T" D
    1、对角矩阵和单位阵。
    2 L6 M( n( m+ q: Y0 J7 w例1:x <- 1:6; diag(x) #对角矩阵- F9 l; V) L% O
    例2:y <- rep(1, 5); diag(y) #单位阵
    1 g6 k- X- c4 D& f/ k$ Q) |) ~7 J, g+ E3 `
    2、矩阵下标1 d' ^/ L3 J/ {/ n
    例1:xx <- matrix(1:20, 4, 5)* T& s6 a/ K6 Y& w0 s6 E0 a
    xx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4]
    0 ~/ i# G  E# [2 t( Cxx[2, ]; xx[ , 2]
    6 g6 T0 k5 q% l& o" R" n5 t% Q# k5 e6 `' Z
    3、代数意义下的矩阵乘法"%*%"
    1 }4 _% l1 S- }, V/ q例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3)
    ! i* v+ @  t) @! N% ~: Myy %*% zz; zz %*% yy4 y" v$ P# _# I+ T

    : m6 t3 Y- [1 p4、矩阵行和列的维数/ C, l- `$ n5 E5 Y
    例1:xx <- matrix(1:20, 4, 5)
    ; z$ P; x& w& m5 f+ mdim(xx) #行和列的维数
    " K5 N$ S0 W: t& z* o! _$ Rnrow(xx); ncol(xx) #行数和列数7 Y/ e1 J" T' K8 F) ~- t

    + H9 p8 k$ Q: W# W( p5、矩阵的主要运算函数$ |2 K) F$ ~; y# F$ S6 M$ H9 E
    例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵, l7 L" z; F9 e; }2 c
    is.matrix(x); is.matrix(y) #判断是否矩阵* b. f$ H2 B3 I& d, Q
    例2:   diag() #方阵对角线元素或者生成对角矩阵
    , r6 a8 [5 k$ ]4 k( \2 _apply() #对矩阵应用函数
    6 {8 V0 {/ h" Qeigen() #求特征值和特征向量
    ! N9 G3 G# O7 n1 msolve() #求逆矩阵
      H8 o! _2 p6 Ichol() #Choleski分解* r& V4 ^$ J; f8 H  Y, p9 R, Z
    svd() #奇异值分解4 _: a) W' v% d
    qr() #QR分解
    ; U7 H) _1 I7 w/ z# X' \6 Qdet() #求行列式
    - [- l$ f+ w/ r& f, Wdim() #给出行列数, d9 |$ j$ ~5 G6 L; y% e4 ^1 p! X9 M
    t() #矩阵转置  k9 t7 j7 \4 i5 S7 Q
    1 x- B' e2 u8 Q" [
    6、矩阵合并& O8 p1 F0 i/ Z6 `* |2 {) d2 a
    例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)
    " y- j' f1 J* I* F% icbind(aa, bb) #按列合并& f% `6 t& X; D5 R) S
    rbind(aa, bb) #按行合并) ]  g! o! Y" \
    1 k7 t3 {0 L7 `! v& h2 c  s. U
    7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。: o0 p4 \4 g; g/ Q
    例1:xx <- matrix(1:20, 4, 5)
    $ s7 r" l2 E  q( j  x1 tcolMeans(xx) #列均值) B# @$ H1 K( o) R
    colSums(xx) #列和
    3 }, b9 V0 T" [/ i5 N其余大部分都要用到apply()函数
    + V2 M% L2 J  ]* I8 v9 V. q* q  y+ k: K例2:xx <- matrix(1:20, 4, 5)
    2 x. f- L% P+ A5 O; K3 Mapply(xx, 2, mean) #列均值,等同于colMeans(xx)- d5 ~8 }$ x# {# J* _  w5 E
    apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。
    4 A2 M7 I* S/ F3 s, H  tapply(xx, 1, var) #行方差
    " |' _2 `' @2 }$ m6 n3 s# i7 S" dapply(xx, 2, max) #每列最大值
    + w4 E* r7 `9 tapply(xx, 2, rev) #每列的数反排列* h  R- r/ c- L( N
    0 y  \7 I3 F0 l" S: z
    . k' `; w- G7 f1 J& y8 i
    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-15 06:55 , Processed in 0.410727 second(s), 50 queries .

    回顶部