• Matlab、R向量与矩阵操作


    Matlab、R向量与矩阵操作

     

    描   

    Matlab

    R

    1

    建立行向量v=[1 2  3 4]

    v=[1 2 3 4]

    v<-c(1,2,3,4)或v<-scan(),然后输入1 2 3 4,并按Enter

    2

    建立列向量v=[1 2  3 4]’

    v=[1;2;3;4]

    同上,R中不区分行列

    3

    建立矩阵A=(1 4  2 5  3 6  ) 

    A=[1 2 3;4 5 6]

    A<-matrix(c(1,2,3,4,5,6),

    nrow=2,byrow=TRUE)

    4

    访问向量中元素,如第3个元素

    v(3)   

    v[3]   

    5

    访问矩阵中元素,如第二行,第三列

    A(2,3)

    A[2,3]

    6

    用访问向量元素的方式访问矩阵元素

    A(6)   **先数列后数行

    A[6]   **先数列后数行

    7

    生成等差递增序列(单位步长),如2,3,4,5,6,7

    2:7

    2:7

    8

    生成等差递减序列(单位步长),如7,6,5,4,3,2

    7:-1:2

    7:2

    9

    生成等差递增序列,

    如2,5,8,11,14

    2:3:14

    seq(2,14,3)

    10

    7-9归纳起来,介于a和b之间,等差的n个数,可用函数

    linspace(a,b,n)

    seq(a,b,len=n)

    11

    构建以10为底的对数等距,即在10a和10b之间的n个数

    logspace(a,b,n)

    10^seq(a,b,len=n)

    12

    构建所有元素都为0的k维向量

    zeros(k,1)列向量

    zeros(1,k)行向量

    rep(0,k)

    13

    构建所有元素都为j的k维向量

    j*ones(k,1) 列向量

    j*ones(1,k) 列向量

    rep(j,k)

    14

    构建所有元素都为0的n×m矩阵

    zeros(n,m)

    matrix(0, nrow=n,ncol=m)

    或matrix(0  ,n, m)

    15

    构建所有元素都为j的n×m矩阵

    j*ones(n,m)

    matrix(j, nrow=n, ncol=m)

    或matrix(j,  n, m)

    16

    n×n的单位矩阵

    eye(n)

    diag(n)

    17

    构建对角阵,使其对角线上的元素为向量v

    diag(v)

    diag(v, nrow=length(v))

    18

    提取矩阵A对角线元素

    v=diag(A)

    v<-diag(A)

    19

    矩阵横向连接(行数要相等)

    [A1 A2]

    cbind(A1,A2)

    20

    矩阵纵向连接(列数要相等)

    [A1;A2]

    rbind(A1,A2)

    21

    给定向量x和y,长度分别为m和n,生成m×n的矩阵X,其行为x;生成m×n的矩阵Y,其列为y;

    [X,Y]=meshgrid(x, y)

    m<-length(x);  n=length(y);

    X<-matrix(rep(x,each=n),nrow=n);

    Y<-matrix(rep(y,m),nrow=n)

    22

    向量元素掉转顺序

    v(end:-1:1)

    rev(v)

    23

    访问矩阵A的列,如第二列

    A(:, 2)

    A[,2]#给出的结果是向量;

    A[,2,drop=FALSE]#结果是n×1的矩阵

    24

    访问矩阵A的行,如第七行

    A(7, :)

    A[7, ]#给出的结果是向量;

    A[7, ,drop=FALSE]#结果是1×m的矩阵

    25

    将矩阵A“拉直”为向量

    A(:)

    c(A)

    26

    提取子矩阵,如2-4行,3-6列

    A(2:4,3:6)

    A[2:4,3:6]

    27

    提取特殊元素形成矩阵,如一个3×2矩阵,包含行7,7,6,列2,1的元素

    A([7 7 6],[2 1])

    A[c(7,7,6),c(2,1)]

    28

    按行掉转矩阵元素顺序

    fliplr(A)

    t(apply(A,1,rev))

    29

    按列掉转矩阵元素顺序

    flipud(A)

    apply(A,2,rev)

    30

    截取向量v,如保留前10个元素

    v=v(1:10)

    v<-v[1:10]或

    length(v)<-10

    31

    截取向量v元素,从a处开始至结尾

    v=v(a:end)

    v<-v[a:length(v)]

    32

    截取向量v中除k以外的所有元素

    v=v(1:(k-1) (K+1):end)

    v<-v[-k]

    33

    截取除k和j以外的所有元素

    32中的方法

    v<-v[c(-k, -j)]

    34

    对矩阵A中的元素重新排成n行m列的新矩阵(A中必须有nm个元素)

    A=reshape(A, n, m )

    dim(A)=c(n, m)

    35

    提取矩阵A的下三角矩阵

    L=tril(A)

    L<-A; L[upper.tri(A)]<-0

    36

    提取矩阵A的上三角矩阵

    U=triu(A)

    U<-A; U[lower.tri(A)]<-0

    37

    提取n×n的Hilbert矩阵

    hilb(n)

    Hilbert(n)

    **需加载Matrix库

    38

    构建n维数组,如3×4×2

    reshape(1:24, 3, 4, 2)或

    reshape(1:24, [3 4 2])

    array(1:24, c(3,2,4))

  • 相关阅读:
    对返回的json数据重写格式,用特性JsonConverter
    dev 的NavBarControl动态菜单
    获取oracel数据库的结构
    Java-背单词程序(俄语)
    实现同或操作 C++
    输入字符串先用cin后用getline函数失效原因
    C++全局变量与局部变量
    4.Redis事务
    3.持久化配置
    2.常用数据类型
  • 原文地址:https://www.cnblogs.com/blueicely/p/3286508.html
Copyright © 2020-2023  润新知