QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2802|回复: 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。
    6 X, x* P5 R1 s1 K5 T, O1、对角矩阵和单位阵。( H$ I1 d) {  q( Z# R: L4 t, x
    例1:x <- 1:6; diag(x) #对角矩阵- w, |$ l: u, P' k; c
    例2:y <- rep(1, 5); diag(y) #单位阵
    0 G6 G4 C- Z# D. g/ N- P$ a# [! f3 n" l& ^8 R: M/ @
    2、矩阵下标
      K" T+ U0 J& g例1:xx <- matrix(1:20, 4, 5)
    1 R& O/ n4 Q6 Hxx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4]& \( @( p" l. ?
    xx[2, ]; xx[ , 2]
    6 [, H1 f! r$ ^3 ~. E0 _
    - m# ^% |1 a2 `. b3、代数意义下的矩阵乘法"%*%"- O9 t' [! w8 J; |4 ?
    例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3)& ^8 g) l7 b$ f, n% h. d1 [9 X
    yy %*% zz; zz %*% yy+ |: y' n1 L' s) s

    % H9 H' A! {, E; I3 \4、矩阵行和列的维数, _! Z! W# _/ O' t
    例1:xx <- matrix(1:20, 4, 5)6 \* N) E4 @' `' J5 r
    dim(xx) #行和列的维数. q: x2 Q( e1 G; j' K2 `
    nrow(xx); ncol(xx) #行数和列数
    1 ~  X$ }; M9 w' ?/ w* a+ I7 z8 l
    6 m9 u9 D1 B3 F2 ^5、矩阵的主要运算函数
    " ?+ D# Z& a" @例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵
    $ c* `9 W  ~# Z, L+ d1 P. Tis.matrix(x); is.matrix(y) #判断是否矩阵
    # Y# k$ Z! m& x. L9 X例2:   diag() #方阵对角线元素或者生成对角矩阵! g7 G! H# q* I6 q
    apply() #对矩阵应用函数+ `- F) P! j6 W- ~) s) \3 w9 a
    eigen() #求特征值和特征向量
    5 k0 P3 Z5 r7 d' Y( ksolve() #求逆矩阵
    9 w$ u0 y& M; jchol() #Choleski分解
    + M  ?( V% h. {  O0 Fsvd() #奇异值分解3 {) L. i6 E/ A# R
    qr() #QR分解
    # x6 F1 c3 J# V- j2 idet() #求行列式
    " _2 b8 N2 K  J, p8 m5 m4 i( z2 p9 Odim() #给出行列数0 R1 b; @. q/ |1 j/ z# j, c% _
    t() #矩阵转置
    & @3 ?0 G, A2 z+ g
    5 b2 k5 p1 s- J: b. O6、矩阵合并
    3 c! |/ ~3 X# e3 m1 ~例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)
    : Y+ Q0 T) E' v, W+ D# Ocbind(aa, bb) #按列合并
    " n# s2 K" w% Arbind(aa, bb) #按行合并
    1 S9 h; E! m( _+ T2 Z3 N1 |0 q$ d' E: l9 {8 e9 B
    7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。
    8 _& N5 C) t4 b6 e; ?例1:xx <- matrix(1:20, 4, 5)
    ' h% ^0 H) c0 G, i6 m8 O& X$ fcolMeans(xx) #列均值
    1 H* c0 }- r# k, N, e# r/ T: YcolSums(xx) #列和
    , S* T! L# Q6 D5 a其余大部分都要用到apply()函数
    ) z9 `3 \+ o$ ^* `! _% i; [例2:xx <- matrix(1:20, 4, 5)  t; _' T2 ]6 |7 G, k" H) L! w
    apply(xx, 2, mean) #列均值,等同于colMeans(xx)
    7 m# ^: R: R* t( Z8 @apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。
    ) y6 p* ]: [# u+ \7 \, r$ F* o; Yapply(xx, 1, var) #行方差
    2 @& k. q' V4 p# V# A8 u7 Rapply(xx, 2, max) #每列最大值4 s4 q2 @9 S2 \$ ^. I) m
    apply(xx, 2, rev) #每列的数反排列
    5 }; C/ [& @; Q9 d/ ^* l; e3 V+ u0 G. A

    2 V" G2 D- b* v7 B
    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-10 17:04 , Processed in 1.419555 second(s), 50 queries .

    回顶部