QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2873|回复: 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。
    8 I" [) T" t" P- e' X  o1、对角矩阵和单位阵。
    9 ^9 e* D+ K2 u/ s& F4 A例1:x <- 1:6; diag(x) #对角矩阵# r' y5 o4 A7 V( r2 h8 L* f
    例2:y <- rep(1, 5); diag(y) #单位阵$ I1 U& I) i. ?, Z
    8 x8 M) o  H. i) t5 B- x
    2、矩阵下标
    " L5 k2 X$ P4 `; S' A% D% h例1:xx <- matrix(1:20, 4, 5)
    / M) w. d; v0 c9 G; I" Q1 xxx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4]
    4 S# C* I; l; i/ z4 W# ?xx[2, ]; xx[ , 2]
    6 f4 T: h$ z* G4 \& x& t5 x# C2 k$ j3 z$ G
    3、代数意义下的矩阵乘法"%*%"
    9 w4 ]; h7 X9 X例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3)
    # b; l  f' J+ c- }, Dyy %*% zz; zz %*% yy" {" F; I1 Z0 t  J3 H0 P9 x1 n9 ^8 K
    8 D, c) J" \( _; b0 a, J
    4、矩阵行和列的维数
    8 r1 x" j* H, u0 ?6 D$ w例1:xx <- matrix(1:20, 4, 5)
    5 P0 P6 F4 B  `9 s. ?dim(xx) #行和列的维数0 S8 j: ^1 }6 F* N: U
    nrow(xx); ncol(xx) #行数和列数& w9 }. A! c8 i: S# l( ]# A2 @1 N
    . o4 `& P. i# s# ^$ z- ?
    5、矩阵的主要运算函数
    & B- O% j' i7 a9 J) W# i: o例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵
    + S( T! ~6 k1 t& [7 f6 P# a3 y+ T: Y7 y( vis.matrix(x); is.matrix(y) #判断是否矩阵5 m& F/ q6 T* q( f
    例2:   diag() #方阵对角线元素或者生成对角矩阵& A/ K. ]/ ~+ v  Q3 z. s# i% L
    apply() #对矩阵应用函数
    9 J) ?# p% J! @/ U* j& S$ N  aeigen() #求特征值和特征向量! f- @% q2 k# _8 q9 O1 W. m, }9 j
    solve() #求逆矩阵, g5 _9 c8 @+ T/ S6 a. W) o- v6 ?7 v
    chol() #Choleski分解2 A" U( T% o  y( r  [3 _
    svd() #奇异值分解
    + }( b9 y) f- z7 yqr() #QR分解/ X) @* C1 Z$ i- P  v9 {
    det() #求行列式! C) q1 B1 F, m# n
    dim() #给出行列数' q7 B/ w  k3 c3 @
    t() #矩阵转置- a) [  r) r2 }; i8 N7 H+ c
    ; z: @& B/ f8 c; T: b
    6、矩阵合并
    0 p" [9 B9 j; H% [- k  T例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)1 p8 ]/ D" k+ q1 Z' J1 r6 U
    cbind(aa, bb) #按列合并# }8 q  @& m* r( |! `' p8 T
    rbind(aa, bb) #按行合并
    ; w/ z" N+ X9 A% I$ r! R; H% m& M2 F) A9 Z
    7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。0 z; A) C$ j, M9 l. E7 ?& k
    例1:xx <- matrix(1:20, 4, 5)7 q$ t3 o0 R$ K$ P8 ?* f8 D7 [
    colMeans(xx) #列均值
    $ L( Z1 w3 s, w& C+ HcolSums(xx) #列和6 R% C% U2 k3 W* R4 {6 ?+ q
    其余大部分都要用到apply()函数
    % F5 a% e  V: f! T: O例2:xx <- matrix(1:20, 4, 5)
    . c8 d2 c- G0 V+ m0 b" g- xapply(xx, 2, mean) #列均值,等同于colMeans(xx)
    : N7 f* p' [: L. F9 H* }apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。
    6 T% `; ~/ U* Uapply(xx, 1, var) #行方差1 Y2 R$ S( W  J& g
    apply(xx, 2, max) #每列最大值
    ! `1 ^1 q0 L' Q6 bapply(xx, 2, rev) #每列的数反排列' E$ k$ k; D3 s( E% |

    ; Y1 E1 i+ `- U' g% R. {# C# ^. j  h. s* T, 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, 2026-8-25 22:25 , Processed in 0.716563 second(s), 49 queries .

    回顶部