QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2851|回复: 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。, u" X  l8 ]6 k
    1、对角矩阵和单位阵。
    : R% P* o9 p0 P- M  l# o: O$ _/ w例1:x <- 1:6; diag(x) #对角矩阵/ v, S+ W6 g8 a  j5 {
    例2:y <- rep(1, 5); diag(y) #单位阵% B4 n' U. i) N" L* V6 q

    ( A3 l, f7 \+ b- W* i2、矩阵下标
    ' _- Y: n5 J% t: _. W9 H例1:xx <- matrix(1:20, 4, 5)6 e# [% Q: f( \+ N- N& _8 Q
    xx[2, 2]; xx[2, 3:5]; xx[3:4, 3:4]8 l9 Y3 `: Y* ?" s/ p$ p& A
    xx[2, ]; xx[ , 2]
    - c; T$ C4 W, F" S& K8 ~0 y! W( J' |9 y  C( I: q
    3、代数意义下的矩阵乘法"%*%"7 e) D* b2 b' z3 e% I
    例1:yy <- matrix(1:6, 3, 2); zz <- matrix(1:6, 2, 3)
    $ I# H' A+ L: }8 K6 P4 Ayy %*% zz; zz %*% yy' M% ]% p4 u4 O1 ^6 e
    2 ]6 s# B& v) S, H- q4 ]
    4、矩阵行和列的维数$ Z8 ?2 c' e; ?- a6 G& P; a3 y6 O: L
    例1:xx <- matrix(1:20, 4, 5)
    / \; c% D6 K, X9 s" L! zdim(xx) #行和列的维数
    # Y% D) E+ a8 P( Rnrow(xx); ncol(xx) #行数和列数
    / P" h1 d/ n/ D) Y& u2 p- p5 L1 a0 k  G, A- J, y, h
    5、矩阵的主要运算函数
    7 d: B7 n2 |/ C% s) _7 c2 s+ b例1:x <- 1:6; y <- as.matrix(x) #转换成矩阵
    : j/ w. N8 `1 Y! S- p+ [  b. K5 nis.matrix(x); is.matrix(y) #判断是否矩阵
    * j0 l  q' t6 _+ e5 K, k4 m) Q例2:   diag() #方阵对角线元素或者生成对角矩阵$ n% [) a, D# c4 ]1 a& T9 b' {
    apply() #对矩阵应用函数
    ( }& M! ~4 e3 ^! Geigen() #求特征值和特征向量
    6 g/ d, y- V/ psolve() #求逆矩阵
    2 [$ I% k8 m. U9 J+ Rchol() #Choleski分解' z6 z% e' P1 d9 Q* I. b
    svd() #奇异值分解# `- ]1 Y, E7 L( k
    qr() #QR分解& J/ V+ B" t3 S% V$ h% K
    det() #求行列式- m9 y4 o  X) A8 b$ u2 Z9 t
    dim() #给出行列数, r: T" {% Y  r. q' v+ d9 T5 ^
    t() #矩阵转置: }6 g2 z: s8 v$ b

    ) T! w' C' @& y% g, n6、矩阵合并/ d5 o0 M2 K+ g. {/ s. N, X# v
    例1:aa <- matrix(1:6, 3, 2);  bb <- matrix(7:12, 3, 2)5 O3 _0 h; L5 R
    cbind(aa, bb) #按列合并; I. f( D. [& T4 a+ O( y
    rbind(aa, bb) #按行合并; q" M" H0 @. ^0 B

    9 U/ [5 G: C3 Y$ Y4 F7、矩阵apply()运算函数:语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数。
    1 N. a: g; g+ G# @  x5 V, ]8 |例1:xx <- matrix(1:20, 4, 5)
      Z6 v7 w7 q: I( N! [colMeans(xx) #列均值) X$ T) |; I! c" D9 ]
    colSums(xx) #列和) C; ]6 B" q# ?* j
    其余大部分都要用到apply()函数; J% c* T5 n: ~; l6 j
    例2:xx <- matrix(1:20, 4, 5)
    8 u9 y- L* z$ @3 U% k( J4 m2 Iapply(xx, 2, mean) #列均值,等同于colMeans(xx): b. E# X% B, E+ \' T" G
    apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。% @7 `& o+ Z4 m* D6 E. P
    apply(xx, 1, var) #行方差! _  E* P2 ]. p+ d# ^0 Q
    apply(xx, 2, max) #每列最大值
      C* o9 T( f& L9 x' N3 Qapply(xx, 2, rev) #每列的数反排列
      h7 d* R3 U4 k' S& J
    4 c2 {9 V) ?8 S6 H: u1 t# @; d
    , O; r7 _% a, k, L; A" u7 n9 `
    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-7-10 21:54 , Processed in 0.401735 second(s), 50 queries .

    回顶部