下面是m程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function h=motionblur(dirangle,winsize)
if nargin<2
winsize=9
end
h=zeros(winsize)
ext=(winsize-1)/2
if (abs(abs(dirangle)-90) >=45) &(abs(abs(dirangle)-270)>=45),
slope=tan(dirangle*pi/180)
rloc=round(slope*[-ext:ext])
for i=1:winsize,
h(ext-rloc(i)+1,i)=1
end
else
slope=cot(dirangle*pi/180)
cloc=round(slope*[-ext:ext])
for i=1:winsize,
h(i,ext-cloc(i)+1)=1
end
end
运行步骤:
在command window中输入:
motionblur(30,5) %第一个参数就是输入角度。可以随意改。第二个参数只能是奇数整数。
查找过程:首先看一下原始数据,A列是一些公司全名,在B1处输入一个简称或者说关键字(必须是在A列某个文本中连续包含的关键字),要在C1返回A列对应的全称。
双击C1单元格,输入公式
=VLOOKUP("*"&B1&"*",A1:A7,1,)
回车后C1单元格就返回了B1对应的A列公司全称。
VLOOKUP通配符方法介绍:
=VLOOKUP("*"&B1&"*",A1:A7,1,)代表的含义是在A1:A7的范围内查找包含B1关键字的单元格,找到后返回A1:A7第一列的内容。函数中的“*”代表任意字符,也就是说在A1:A7内查找B1文本前后任意字符的内容,也就是包含B1文本的意思。其中的1代表返回A1:A7数据区域第一列结果,最后一个逗号后省略参数代表的是精确匹配,也可以输入0或FALSE。
本例也可以用LOOKUP函数完成。
双击C1单元格,输入公式=LOOKUP(1,0/FIND(B1,A1:A7),A1:A7)即可。
我们来看一下LOOKUP运算过程。
首先FIND(B1,A1:A7)表示在A1:A7内查找B1内容,如果查找不到则返回错误值,如果查到返回在文本中的位置。
0/FIND(B1,A1:A7)这部分让上一步返回的值参与运算,如果上一步返回的是数字,结果就返回0否则仍返回错误值。
最后LOOKUP(1,0/(数组),A1:A7)部分返回“数组”中最后一个小于等于1(也就是“数组”中的0)的值对应的A1:A7的内容,也就是全称。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)