1 BSXFUN

C = BSXFUN(FUNC,A,B)
二元单态展开函数(Binary Singleton Expansion Function)
将函数handle func指定的逐元素二进制操作应用于数组a和b,并启用单例扩展。func可以是以下内置函数之一

例子:
Compute z(x, y) = x.*sin(y) on a grid:

>> x=1:10;
>> y=x.';
>> z=bsxfun(@(x,y) x.*sin(y),x,y);

a=[1,2;3,4]

a =

     1     2
     3     4

>> b=[2;3]

b =

     2
     3

>> bsxfun(@times,a,b)

ans =

     2     4
     9    12

>> b=[1,2;2,3]

b =

     1     2
     2     3

>> bsxfun(@times,a,b)%前面是矩阵点乘,即对应位置相乘。要求矩阵大小一致,

ans =

     1     4
     6    12

2 MEAN

  • S = MEAN(X)
    是x中元素的平均值;如果x是向量,对于矩阵,s是包含每列平均值的行向量。对于n-d数组,s是沿第一个数组维度大小不等于1的元素的平均值。
  • MEAN(X,DIM)
    取x的dim维的平均值。

3 reshape

重塑重塑阵列。
reshape(x,m,n)或reshape(x,[m,n])返回mn矩阵,该矩阵的元素从x按列选取。如果x没有mn元素,则会导致错误。

4 std

标准偏差

  • Y = std(X)
    对于向量,y=std(x)返回标准偏差。对于矩阵,y是包含每列标准偏差的行向量。对于n*d数组,std沿着x的第一个非单体维进行操作。
    (std将y标准化为(n-1),其中n是样本大小。这是一个无偏估计量的sqrt,从中得出x的总体方差,只要x由独立的、相同分布的样本组成。)
  • y=std(x,1)
    归一化n,产生关于其平均值的样本第二力矩的平方根。std(x,0)与std(x)相同。
  • Y = std(X,FLAG,DIM)
    y=std(x,flag,dim)沿着x的尺寸dim取标准偏差。传入flag0以使用n-1的默认标准化,或flag1以使用n。
    具体解释为:
    如是总体,标准差公式根号内除以n
    如是样本,标准差公式根号内除以(n-1)。
    因为我们大量接触的是样本,所以普遍使用根号内除以(n-1)
    (在统计学中样本的均差多是除以自由度(n-1),它的意思是样本能自由选择的程度。当选到只剩一个时,它不可能再有自由了,所以自由度是(n-1))

即按哪个维度进行标准化的求解。下面举例说明

>> X = [4 -2 1; 9  5 7]

X =

     4    -2     1
     9     5     7

>> A=std(X,0,1)

A =

    3.5355    4.9497    4.2426

>> B=std(X,0,2)

B =

     3
     2

>> C=std(X)

C =

    3.5355    4.9497    4.2426

5 squeeze

B = squeeze(A),B与A有相同元素,但所有只有一行或一列的维度(a singleton dimension)被去除掉了。二维阵列不受squeeze影响;

6 assert断言函数

assert(all(floor(mapsize)==mapsize), ['Layer ' num2str(l) ' size must be integer. Actual: ' num2str(mapsize)]);
assert(EXPRESSION) evaluates EXPRESSION and, if it is false, displays the
error message 'Assertion Failed'.

assert(expression)计算表达式,如果为false,则显示错误消息“assertion failed”。

>> assert(isfloat(train_x), 'train_x must be a float');
train_x must be a float
 
>> train_x = double(train_x) / 255;
>> assert(isfloat(train_x), 'train_x must be a float');

7 any 和all

如果A是一个向量,如果所有的元素都是非零的,all(A)则返回1,如果有一个元素为零,all(A)则返回0
all函数:检测矩阵中是否全为非零元素

any函数:检测矩阵中是否有非零元素,如果有,则返回1,否则,返回0。用法和all一样

8 rem

rem(x,y):求整除x/y的余数

9 randperm

随机序列产生整数,直接看例子,
(1)P = randperm(N) ,随机产生1-N序列的整数

>> p=randperm(7) 

p =

     6     3     7     5     1     2     4

(2)P = randperm(N,K) ,在1-N中随机挑选K个整数,乱序

>> p=randperm(10,7)

p =

     4     1     8     7    10     6     9

10 isempty

isempty(X)
如果x是空数组,则isEmpty(x)返回1,否则返回0。安
空数组没有元素,即prod(size(x))=0。

11 repmat

b=repmat(a,m,n)或b=repmat(a,[m,n])创建大型矩阵b
由A的副本的m×n平铺组成。如果A是矩阵,
B的尺寸为[size(A,1)*M,size(A,2)*N]。
直接看例子吧

>> repmat(magic(2), 2, 3)

ans =

     1     3     1     3     1     3
     4     2     4     2     4     2
     1     3     1     3     1     3
     4     2     4     2     4     2

12 expand

复制并平铺数组的每个元素,类似于repmat。
直接看例子

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

A =

     1     2
     3     4


SZ =

     6     5


B =

     1     1     1     1     1     2     2     2     2     2
     1     1     1     1     1     2     2     2     2     2
     1     1     1     1     1     2     2     2     2     2
     1     1     1     1     1     2     2     2     2     2
     1     1     1     1     1     2     2     2     2     2
     1     1     1     1     1     2     2     2     2     2
     3     3     3     3     3     4     4     4     4     4
     3     3     3     3     3     4     4     4     4     4
     3     3     3     3     3     4     4     4     4     4
     3     3     3     3     3     4     4     4     4     4
     3     3     3     3     3     4     4     4     4     4
     3     3     3     3     3     4     4     4     4     4

13 flipall

将矩阵直接翻转180度。直接看例子

z =

     1     2     3
     3     4     5

>> flipall(z)

ans =

     5     4     3
     3     2     1

14 flip

flip flip元素的顺序y=flip(x)返回一个与x尺寸相同但元素顺序翻转的向量y。如果x是一个矩阵,则每列都会垂直翻转。对于n-d数组,flip(x)在第一个非单维度上操作。
翻转(x,dim)沿dim标注的维度进行操作。例子:

z =

     1     2     3
     3     4     5

>> flip(z)

ans =

     3     4     5
     1     2     3

>> flip(z,1)

ans =

     3     4     5
     1     2     3

>> flip(z,2)

ans =

     3     2     1
     5     4     3

>>

15 find

查找非零元素的索引。

16 zscore

z=zscore(x)返回x的居中缩放版本,与x大小相同。对于矢量输入x,z是z-scores的矢量(X-MEAN(X)) ./ STD(X)。对于矩阵X,z-scores是使用X每列的平均值和标准偏差计算的。对于更高维度的数组,z-scores是使用第一个非单体维度的平均值和标准偏差计算的。
[z,mu,sigma]=zscore(x),mu记录x中每一列的平均值和sigma记录x中每一列的标准差。

>> a=[1,2,3;3,5,6]

a =

     1     2     3
     3     5     6

>> [x,mu,sigma]=zscore(a)

x =

   -0.7071   -0.7071   -0.7071
    0.7071    0.7071    0.7071


mu =

    2.0000    3.5000    4.5000


sigma =

    1.4142    2.1213    2.1213

>>

17 normalize(归一化数据)

function x = normalize(x, mu, sigma)
    x=bsxfun(@minus,x,mu);
	x=bsxfun(@rdivide,x,sigma);
end

18 isfield

如果FIELD 是结构数组s中字段的名称,则isfield(S,FIELD) returns true 返回true。

>>   s = struct('one',1,'two',2);
       fields = isfield(s,{'two','pi','One',3.14})

fields =

     1     0     0     0

>>

19 ishandle

IsHANDLE(H)返回一个包含1个元素的数组,其中H的元素是有效的图形或Java对象句柄,0是它们不在的地方。

20 drawnow

drawnow更新图形窗口和进程回调
drawnow更新数据并处理任何挂起的回调。如果修改图形对象并希望立即在屏幕上看到更新,请使用此命令

21 perfcurve

计算接收器工作特性(ROC)曲线或分类器输出的其他性能曲线。