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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM