QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2466|回复: 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。* B6 l1 M" }3 e' U0 D8 v$ x( s
    1、对角矩阵和单位阵。& G' ^4 q/ Y  W& j2 v& m& S$ w- }! H; R1 n
    例1:x <- 1:6; diag(x) #对角矩阵
    # l, b$ G8 U( W5 [$ i, _例2:y <- rep(1, 5); diag(y) #单位阵
    ) y1 h+ b, G+ b# _# @9 R9 @4 k2 r' \% i8 c2 D
    2、矩阵下标8 M- x5 G/ [$ c1 \
    例1:xx <- matrix(1:20, 4, 5)( m% u1 b0 O1 X7 P8 V
    xx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4]1 G9 X$ G' o0 \2 [
    xx[2, ]; xx[ , 2]3 Z5 e9 V5 |0 J) F( P7 o
    ' j& j& n0 R" t% r0 N  m
    3、代数意义下的矩阵乘法"%*%"5 s' I! f' J' C6 B" c; A
    例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3). W& j, \$ v( g5 D
    yy %*% zz; zz %*% yy
    ! G9 A6 A, W: X6 U- n- _& ~& }% x  g) Q5 f$ H& I! q3 B
    4、矩阵行和列的维数; G0 i1 a( A' W5 u1 y) \
    例1:xx <- matrix(1:20, 4, 5)
    " S) e9 m9 o4 w6 Y. H2 zdim(xx) #行和列的维数
    ) X8 ^( C  T& W9 W7 S) I1 S/ e; g8 ]- X& jnrow(xx); ncol(xx) #行数和列数
    8 R! G2 @4 E. h8 x6 ~7 U2 Y+ v
    ! h+ g) c3 T+ F" O' L# S5、矩阵的主要运算函数
    8 J+ g, ~- X3 T: L! Q) V例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵# n1 p' A/ P7 l# X. G. j7 q* s3 R
    is.matrix(x); is.matrix(y) #判断是否矩阵% I! m, Z5 D" ?
    例2:   diag() #方阵对角线元素或者生成对角矩阵
    0 W/ U& {4 ^1 ^0 U0 dapply() #对矩阵应用函数
    9 x( ]; Z' T2 s* _* qeigen() #求特征值和特征向量' N' I, a% W3 v+ D  V
    solve() #求逆矩阵& U, F& o6 ]+ ^. ~/ }4 Y0 J
    chol() #Choleski分解
    " K0 v( z3 D" bsvd() #奇异值分解8 g! a* V. c9 Y
    qr() #QR分解$ Z% l# r& y7 M% o  r8 N1 @
    det() #求行列式
    % o; W/ y' v5 E! l% f" cdim() #给出行列数
    . Z+ O/ }/ i8 _" F( Mt() #矩阵转置
    2 C( f. \5 i6 \5 j1 K4 ]& U! \" A& p5 [/ `- e" p
    6、矩阵合并9 E( e) l3 t& v- H+ B# U
    例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)
    # D$ B: \9 D% P% e, B- Jcbind(aa, bb) #按列合并
    ; {  X0 K8 Q- s0 A5 p- o' ^rbind(aa, bb) #按行合并7 m2 \& X0 |7 Z9 m

    5 @, X  S4 K- {( \7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。
    + D5 S2 r/ W5 b% m! Y8 s0 _例1:xx <- matrix(1:20, 4, 5)
    3 N5 b3 U4 J, h- ?3 t' p5 u: mcolMeans(xx) #列均值) q" W% w: o0 @. [
    colSums(xx) #列和
    7 V* [( F5 b0 B其余大部分都要用到apply()函数, j- ~5 ~" Q+ H
    例2:xx <- matrix(1:20, 4, 5)
    ! P$ ~! U6 ^5 L- t+ e# c' P/ V2 H  |  Japply(xx, 2, mean) #列均值,等同于colMeans(xx)
    1 f3 T: L9 _+ t* y! c# @apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。; J4 _* _- d# X' Z( P+ A' a6 h
    apply(xx, 1, var) #行方差
    ) `4 F% a) y9 t' X6 fapply(xx, 2, max) #每列最大值2 `' l, F: l6 N
    apply(xx, 2, rev) #每列的数反排列  I: [9 ?  Q5 J9 b

    ; w4 ]. N% A. p4 S: ?0 l6 d# e0 J8 d- V, J
    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, 2025-7-6 05:06 , Processed in 0.414248 second(s), 50 queries .

    回顶部