QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2803|回复: 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。/ J: B/ ?: A3 @; H5 O1 N% z! G' A
    1、对角矩阵和单位阵。' J3 s+ ]* W5 _5 m! x2 b4 _) S: I; M
    例1:x <- 1:6; diag(x) #对角矩阵
    7 Z: y5 V2 m. B) i/ }例2:y <- rep(1, 5); diag(y) #单位阵" J% `2 R4 ]  c

    0 u9 _" n& L  d/ J5 Q2、矩阵下标& C' m1 K4 \# m5 {( U
    例1:xx <- matrix(1:20, 4, 5)8 T7 R1 I6 _7 O7 `' G, ]
    xx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4], l! c, P* N  ^7 D/ f% O) j
    xx[2, ]; xx[ , 2]
    * |# ?0 P5 T# o+ `
    2 W5 p2 H4 {5 L$ y3、代数意义下的矩阵乘法"%*%"& h  B% Q6 x- J3 q
    例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3)3 z5 |  P. m$ R, b$ u6 s0 E6 ?
    yy %*% zz; zz %*% yy. n. o, \$ W( ?! w9 C6 O( d
    0 Z( b5 f! v2 g5 |% X0 w
    4、矩阵行和列的维数4 I* B; J1 u( `3 l
    例1:xx <- matrix(1:20, 4, 5)
    3 x4 X/ L. F6 f( a" H9 X: u: X" pdim(xx) #行和列的维数7 z) w2 A( i* `- [5 C, d
    nrow(xx); ncol(xx) #行数和列数
    & T8 K/ ^) L/ M/ A% Q. D& V. f& H. D" U% k9 K
    5、矩阵的主要运算函数
    % C# ^$ c. a. R! ^7 i# x例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵5 s5 x, Z* ]" X# h" F
    is.matrix(x); is.matrix(y) #判断是否矩阵
    # Y/ m8 l) ^0 W3 S: Z6 y例2:   diag() #方阵对角线元素或者生成对角矩阵- P5 O+ ~( G* X8 p. m9 M
    apply() #对矩阵应用函数
    8 @; p, g! Q5 n& C; Qeigen() #求特征值和特征向量
    2 G5 S* h/ Z2 p" u, Q+ L+ j+ Isolve() #求逆矩阵
    % Z( d0 q6 Z; G( |. uchol() #Choleski分解, m  ]! B$ F( h; D8 m
    svd() #奇异值分解
      {7 h3 _" U" F3 J, Qqr() #QR分解
    ; ?% q' D7 q8 Ldet() #求行列式
    % I0 u' s; c- t3 _9 C  q2 ^dim() #给出行列数
    7 D0 v8 E1 ~, S6 J* {  q, F. St() #矩阵转置
    4 P6 ^9 k, y* [6 p  S7 \; ^( V
    7 Z. f6 B' i% C. D, j7 M, {6、矩阵合并: Q1 l) E4 M7 j; n8 X. l: W$ l6 _
    例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)) B8 m& v2 C* I/ V( E' f
    cbind(aa, bb) #按列合并
    $ G( P  ~3 ^$ ~5 y2 a  brbind(aa, bb) #按行合并
    2 h, f6 \7 x# P8 y
    * a7 E0 x7 h7 q$ m+ z7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。
    ( M" C, D9 ?7 H' S/ N例1:xx <- matrix(1:20, 4, 5): E$ A" c3 L5 o  D* y
    colMeans(xx) #列均值
    # s  E( I4 D3 S! j0 d' IcolSums(xx) #列和- O* \9 F0 p3 f1 r# I4 U8 M
    其余大部分都要用到apply()函数2 ]  a. @- n/ f3 z
    例2:xx <- matrix(1:20, 4, 5)
    ) l: ~2 [2 J4 ?" ]apply(xx, 2, mean) #列均值,等同于colMeans(xx)
    : k) m  E/ K/ q) h* G0 [% kapply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。7 o% O/ [1 P7 `' S
    apply(xx, 1, var) #行方差( \5 q% z) |+ u/ {# b
    apply(xx, 2, max) #每列最大值
    & ~6 ]0 [6 P1 r3 r1 g; n/ K7 F& bapply(xx, 2, rev) #每列的数反排列- Q4 V5 |* C" v- [! e" i

    # c( R+ h; q. b$ V  X/ h+ X
    1 g6 p- F2 E; g. [3 u0 i- i* y$ e0 g
    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-11 15:08 , Processed in 0.515489 second(s), 49 queries .

    回顶部