hhj91的个人博客分享 http://blog.sciencenet.cn/u/hhj91

博文

Matlab、R向量与矩阵操作

已有 16203 次阅读 2012-8-2 15:15 |系统分类:科研笔记| 矩阵, center, border, window, 480

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=$begin{pmatrix} 1&2 &3 \ 4&5 &6 end{pmatrix}$

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归纳起来,介于ab之间,等差的n个数,可用函数

 

linspace(a,b,n)

seq(a,b,len=n)

11

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

logspace(a,b,n)

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

12

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

zeros(k,1)列向量

zeros(1,k)行向量

rep(0,k)

13

构建所有元素都为jk维向量

j*ones(k,1) 列向量

j*ones(1,k) 列向量

rep(j,k)

14

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

zeros(n,m)

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

matrix(0 ,n, m)

15

构建所有元素都为jn×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

给定向量xy,长度分别为mn,生成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

截取除kj以外的所有元素

32中的方法

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

34

对矩阵A中的元素重新排成nm列的新矩阵(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×nHilbert矩阵

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))



https://blog.sciencenet.cn/blog-623486-598294.html

上一篇:儿戏乎?统计乎?——游戏中的统计思维
收藏 IP: 118.181.225.*| 热度|

2 李欣海 肖飞

该博文允许实名用户评论 评论 (2 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 18:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部