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