迁移学习中常用到的matlab函数——持续更新

这篇博客详细介绍了在迁移学习背景下,MATLAB中一些重要的函数用法,包括sum()函数的列、行和矩阵求和,diag()函数创建和提取对角线元素,元素级运算符./、.^和.*,以及size()函数获取矩阵维度,和zscore()函数进行标准化处理。每个函数都配以实例演示,便于理解。" 85052970,5763505,MapReduce的shuffle与排序详解,"['MapReduce', 'shuffle']

目录

1 repmat()

2 sum()

3 diag()

3.1 X = diag(v,k)

3.2 v = diag(X,k)

4 ./     .^     .*

5 size()

6 zscore()


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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值