Matlab 5. 常用的数据处理函数:cat,zscore,permute,bsxfun,floor,.*和*。

版权声明:本文为博主原创文章,转载必须注明是转载文章和原文超链接以及作者信息。 https://blog.csdn.net/qq_20259459/article/details/59515182

本文为原创文章转载必须注明本文出处以及附上 本文地址超链接  以及 博主博客地址http://blog.csdn.net/qq_20259459  和 作者邮箱[email protected] )。

(如果喜欢本文,欢迎大家关注我的博客或者动手点个赞,有需要可以邮件联系我)


新年过去了,新的学期开始了,首先祝大家学业有成,工作顺利。


最近一直在训练一些数据库,在不断的调用数据的时候觉得有些函数经常的出现和使用,所以想把这些处理数据的相关的函数整理出来写一篇。

如下:

1. reshape函数的使用方法(我前面的博客):http://blog.csdn.net/qq_20259459/article/details/53977470 

2. repmat函数的使用方法(我前面的博客):http://blog.csdn.net/qq_20259459/article/details/53976528

3. cat 函数:N=cat(dimensions , A ,B ,......)

表示:矩阵N由矩阵A,B,.....等矩阵拼接而成,拼接的方法是有dimensions的值来决定的,1代表列向拼接,2代表横向拼接,3代表以三维的形式拼接(如果只有A,B两个矩阵则第三维是A和B的label)。

举例:

A = [1 2 3];
B = [4 5 6];
>> C = cat(1,A,B)

C =

     1     2     3
     4     5     6

>> C = cat(2,A,B)

C =

     1     2     3     4     5     6

>> C = cat(3,A,B)

C(:,:,1) =

     1     2     3


C(:,:,2) =

     4     5     6
4. zscore函数: A=zscore(B)

表示:A为B的标准化

举例:

>> B = magic(3)

B =

     8     1     6
     3     5     7
     4     9     2

>> A = zscore(B)

A =

    1.1339   -1.0000    0.3780
   -0.7559         0    0.7559
   -0.3780    1.0000   -1.1339
5. permute函数:A=permute(B,[2,1]),同样在这里1代表行,2代表列,3代表第三维....

表示将矩阵B的行和列的元素进行对调。

举例:

>> B = magic(3)

B =

     8     1     6
     3     5     7
     4     9     2

>> A = permute(B,[2,1])

A =

     8     3     4
     1     5     9
     6     7     2

6. bsxfun函数:C=bsxfun(@minus,A,B,...),这里@后面可以为times,plus,eq,...以进行不同的运算。

表示矩阵C的每个元素都为矩阵A和矩阵B的相应位置的元素想减而得。

举例:

>> A = rand(3)

A =

    0.7478    0.3658    0.6689
    0.2022    0.0932    0.3471
    0.4922    0.0053    0.5739

>> B = rand(3)

B =

    0.0445    0.4194    0.8067
    0.6011    0.7467    0.7496
    0.0755    0.3644    0.3718

>> C = bsxfun(@minus,A,B)

C =

    0.7034   -0.0536   -0.1378
   -0.3990   -0.6534   -0.4025
    0.4168   -0.3591    0.2021

>> C = bsxfun(@plus,A,B)

C =

    0.7923    0.7852    1.4756
    0.8033    0.8399    1.0966
    0.5677    0.3696    0.9457

>> C = bsxfun(@eq,A,B)

C =

     0     0     0
     0     0     0
     0     0     0

>> C = ~bsxfun(@eq,A,B)

C =

     1     1     1
     1     1     1
     1     1     1

7. floor函数

大多数用于创建自己数据label的时候。

举例:

>> n = 9; %n是该label的最大值
>> k = 5; %k是每一个label存在的数目
>> label = floor((0:k*(n+1)-1)/k)

label =

  1 至 18 列

     0     0     0     0     0     1     1     1     1     1     2     2     2     2     2     3     3     3

  19 至 36 列

     3     3     4     4     4     4     4     5     5     5     5     5     6     6     6     6     6     7

  37 至 50 列

     7     7     7     7     8     8     8     8     8     9     9     9     9     9

8. .*和*

善用.*和*以得到自己想要的数据。

举例:

>> A = [ 1 2; 3 4 ]

A =

     1     2
     3     4

>> B = [ 1 1 ; 2 2 ]

B =

     1     1
     2     2

>> A .* B

ans =

     1     2
     6     8

>> A * B

ans =

     5     5
    11    11


其他还有一些好用的函数我会在找时间另行更新。

本文为原创文章转载必须注明本文出处以及附上 本文地址超链接  以及 博主博客地址http://blog.csdn.net/qq_20259459  和 作者邮箱[email protected] )。

(如果喜欢本文,欢迎大家关注我的博客或者动手点个赞,有需要可以邮件联系我)

猜你喜欢

转载自blog.csdn.net/qq_20259459/article/details/59515182
今日推荐