目录
A = [1 2; 4 5];
B = repmat(A,4,3)
Output
B =
1 2 1 2 1 2
4 5 4 5 4 5
1 2 1 2 1 2
4 5 4 5 4 5
1 2 1 2 1 2
4 5 4 5 4 5
1 2 1 2 1 2
4 5 4 5 4 5
2 sum()
b = sum(a) 列求和
b = sum(a,2) 行求和
b = sum(a(:)) 矩阵求和
Example
A = [1 2; 4 5];
b = sum(A)
c = sum(A,2)
d = sum(A(:))
Output
b =
5 7
c =
3
9
d =
12
3 diag()
3.1 X = diag(v,k)
- X为矩阵,v为向量,以v的元素作为矩阵x的第k条对角线,其余位置补0;
- k=0,对角线;
- k<0,对角线下方;
- k>0,对角线上方。
Example
v = [1 2 4 5];
X= diag(v,2)
Output
X =
0 0 1 0 0 0
0 0 0 2 0 0
0 0 0 0 4 0
0 0 0 0 0 5
0 0 0 0 0 0
0 0 0 0 0 0
3.2 v = diag(X,k)
X为矩阵,v为向量,取矩阵X的第k条对角线的元素向量v
Example
X = [1 2 3; 4 5 6; 7 8 9]
v = diag(X,-1)
Output
X =
1 2 3
4 5 6
7 8 9
v =
4
8
4 ./ .^ .*
./ .^ .*是对矩阵里每一个元素进行操作。而* ^ /是对整个矩阵进行操作。
Example
X = [1 2 3; 4 5 6; 7 8 9]
Y1 = X.^2
Y2 = X^2
Output
X =
1 2 3
4 5 6
7 8 9
Y1 =
1 4 9
16 25 36
49 64 81
Y2 =
30 36 42
66 81 96
102 126 150
5 size()
m = size(X,dim)
返回第dim维的尺寸。
Example
X = [1 2 3; 4 5 6]
m1 = size(X,1)
m2 = size(X,2)
Output
X =
1 2 3
4 5 6
m1 =
2
m2 =
3
6 zscore()
Z = (X-mean(X))./std(X)
Example
X = [1 2 3; 4 5 6];
X1 = X./repmat(sum(X,2),1,size(X,2))
[A,A_mean,A_std] = zscore(X1);
C_mean = mean(X1)
C_std = std(X1)
C = (X1-repmat(C_mean,size(X1,1),1))./repmat(C_std,size(X1,1),1)
[B,B_mean,B_std] = zscore(X1,1);
Output
从结果可以看出,A和C的结果相同,但是和B不相同。
X1 =
0.1667 0.3333 0.5000
0.2667 0.3333 0.4000
A =
-0.7071 0 0.7071
0.7071 0 -0.7071
A_mean =
0.2167 0.3333 0.4500
A_std =
0.0707 0 0.0707
C_mean =
0.2167 0.3333 0.4500
C_std =
0.0707 0 0.0707
C =
-0.7071 NaN 0.7071
0.7071 NaN -0.7071
B =
-1.0000 0 1.0000
1.0000 0 -1.0000
B_mean =
0.2167 0.3333 0.4500
B_std =
0.0500 0 0.0500