norm(范数)、bsxfun()用法

来源:互联网 发布:centos开启ssh端口 编辑:程序博客网 时间:2024/06/05 05:24

1.norm(X)

如果x是一个向量,那么norm(x)就等于x的模长。

||X||=x21+x22++x2n;X={x1,x2xn}

>> x = [3,4]>> norm(x)>> ans =         5

2.bsxfun

C = bsxfun(fun,A,B) 这个bsxfun函数的参数列表;其中fun表示指定一个操作(比如加减乘除等),A,B表示两个矩阵(向量)。下面直接举几个例说明其用法。

X = reshape((1:12),3,4)X =     1     4     7    10     2     5     8    11     3     6     9    12y = [1 4 7 10];

①计算X的每一行所对应的元素都减去与y对应的元素的值:

>> bsxfun(@minus,X,y)% X - y 也行ans =     0     0     0     0     1     1     1     1     2     2     2     2

②计算X的每一行所对应的元素都除以与y对应的元素的值:

>> bsxfun(@rdivide,X,y)% 等价于X./y %bsxfun(@ldivide,X,y)% 等价于y./Xans =    1.0000    1.0000    1.0000    1.0000    2.0000    1.2500    1.1429    1.1000    3.0000    1.5000    1.2857    1.2000

③计算X的每一行所对应的元素都乘以与y对应的元素的值:

>> bsxfun(@times,X,y)% 等价于 X./yans =     1    16    49   100     2    20    56   110     3    24    63   120

为了更好的观察,我们重新令y=[2 8 7 5]

④用X的每一行与y对应的元素做比较,留下对应位置上较大者:

X =     1     4     7    10     2     5     8    11     3     6     9    12>> yy =     2     8     7     5>> bsxfun(@max,X,y)% 注意每一行多观察;bsxfun(@max,y,X)同样是这样ans =     2     8     7    10     2     8     8    11     3     8     9    12

⑤ 操作总结:

这里写图片描述

原创粉丝点击