MAAB大作业
Matlab大作业讲解-2012-11
![Matlab大作业讲解-2012-11](https://img.taocdn.com/s3/m/dd2101a0dd3383c4bb4cd257.png)
-2
0 In-Phase
2
4
插值
• 过采样率Nsamp = 8
实部 4 2 0 -2 -4
0
10
20
30
40 虚部
50
60
70
80
4 2 0 -2 -4
0
10
20
30
40
50
60
70
80
波形成形(平方根升余弦)
• r_cos = rcosfir(rolloff, [-5 5], Nsamp, 1, 'sqrt');
0
-1
0
2
4
6
8
10
12
14
16
18
20
收 端 还 原 0/1信 号 2
1
0
-1
0
2
4
6
8
10
12
14
16
18
20
主要内容
• 16QAM系统各部分仿真波形 • 问题讨论
– 卷积后序列的截取问题(1) – 卷积后序列的截取问题(2) – 利用星座图观察噪声加入是否正确 – 优化程序,加快运行速度
卷积后序列的截取问题(2)
• 错误的BER曲线
卷积后序列的截取问题(1)
序 列 c(未 截 断 ) 20 10 0 20 10 0 序 列 c1(截 断 )
5
10 序列b
15
20
5
10 序列b
15
20
4 2 0
4 2 0
5
10
15
20
5
10
15
20
序列d= c * b 100 50 0 100 50 0
ma ab解魔方设计
![ma ab解魔方设计](https://img.taocdn.com/s3/m/81975a52cc7931b764ce1534.png)
魔方画,最后完成一次图形的绘画。因此屏幕每秒显示图像在 162(27*6)张以上,导致远远超过屏幕的显示频率(75Hz 左右) 因此电脑会选择性的显示一些图像,使得图像会有滞留的现象。
6)有潜在的 BUG 可能 由于程序较大,验证次数有限,所以不排除有潜在的 Bug 的可能性。 6.参考文献: 【1】《魔方三阶入门教程》(见附录 1) 【2】《Matlab 宝典(第二版)》 电子工业出版社 【3】《基于 MATLAB 的计算机图形与动画技术》清华大学出版社 【4】《基于 MATLAB 的图像处理》清华大学出版社 【5】部分知识来源于网上
转法: (上+ 右+ 上- 右-) (上- 前- 上+ 前+)
公式 A
2.右顶边块转至前右位置,即右顶边块需往前倒。 转法: (上- 前- 上+ 前+) (上+ 右+ 上- 右-)
公式 B
3.前右边块原位转向。 转法: ( 公式 A ) + ( 上 2 ) + ( 公式 A )
进阶学习 或:(右+ 上 2 右- 上+) 2 前- 上- 前+
(三)将顶面转出十字。 从下面的变化过程可知,转出十字最多按公式 C 转三遍。
转法: 右- 上- 前- 上+ 前+ 右+
公式 C
C
C
上2
C
进阶学习
:右- 前- 上- 前+ 上+ 右+。
(四)顶层角块定位。使角块处在各自正确的位置上,而不用考虑角块的颜色方向.通过转动 顶层,必定能出现下述两种情形之一:
公式 E 公式 F
图 1 或图 2 通过公式 E 转成图 6, 图 6 再通过公式 E 转成顶面一色。 图 3 或图 4 或图 5 通过公式 E 转成图 7, 图 7 再通过公式 F 转成顶面一色。 注:转动之前应对准方位。公式 E 和公式 F 的最后一转可以省略,也可都改为(上 2)。
机器人学大作业PUMA560工作空间
![机器人学大作业PUMA560工作空间](https://img.taocdn.com/s3/m/857649b4ddccda38366baf2f.png)
求解:①建立坐标系;②给出D-H参数表;③推导正运动学、逆运动学;④编程得出工作空间一、建立坐标系图1 坐标系建立二、给出D-H参数表表1 D-H参数表关节iθiαi l i d i运动范围190-9000-160°~160°200a2d2-225°~45°39090a30-45°~225°4 0 -90 0 d 4 -110°~170°5 0 90 0 0 -100°~160°6 0d 6-266°~266°三、正运动学推导坐标系O i 与于坐标系O i−1之间的齐次变换矩阵如下:1001i i i i i i i ii i i i i i i i i i i c c s s s l c s c c s c l s T s c d θαθαθθθαθαθθαα--⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥⎣⎦由上式可得:将变换矩阵相乘得到PUMA560机械手变换矩阵:整理得:其中:四、逆运动学推导1.求解θ1设推导得:整理得:12arctan 2(,)arctan 2(,x y p p d θ=-2.求解θ2和θ3整理得:3.求解θ4得到:整理得:14112312323arctan2-,x y x y z s a c a c c c a s c c a s s a θ=+--+()4.求解θ5和θ6可得:整理得:)(555,2arctan c s =θ;),(2arctan 666c s =θ五、逆解编程求解工作空间代码如下:%%逆解求解 a2=431.8; a3=20.32; d2=149.09; d4=433.07; d6=56.25; syms flag; count = 1;for px=-1000:10:1000; for py=-1000:10:1000; for pz=-1000:10:1000;if (px*px + py*py -d2*d2) >= 0theta11 = atan2d(py,px) - atan2d(d2,sqrt(px*px + py*py - d2*d2)); theta12 = atan2d(py,px) - atan2d(d2,-sqrt(px*px + py*py - d2*d2)); if (a3*a3 + d4*d4 - k*k) >=0k = (px^2 + py^2 + pz^2- a2^2 - a3^2 - d2^2 - d4^2)/2/a2; theta31 = atan2d(a3,d4) - atan2d(k, sqrt(a3*a3 + d4*d4 - k*k)); theta32 = atan2d(a3,d4) - atan2d(k, -sqrt(a3*a3 + d4*d4 - k*k)); if -160<theta11&&theta11<160 theta1 = theta11;if -45<theta31&&theta31<225 theta3 = theta31; c1 = cosd(theta1); s1 = sind(theta1); c3 = cosd(theta3); s3 = sind(theta3);up_3 = -(a3 + a2*c3)*pz + (c1*px + s1*py)*(a2*s3 - d4); down_3 = (-d4 + a2*s3)*pz + (c1*px + s1*py)*(a2*c3 + a3); theta23 = atan2d(up_3,down_3);theta2 = theta23 - theta3;flag = 1;endif -45<theta32&&theta32<225theta3 = theta32;c1 = cosd(theta1);s1 = sind(theta1);c3 = cosd(theta3);s3 = sind(theta3);up_3 = -(a3 + a2*c3)*pz + (c1*px + s1*py)*(a2*s3 - d4);down_3 = (-d4 + a2*s3)*pz + (c1*px + s1*py)*(a2*c3 + a3);theta23 = atan2d(up_3,down_3);theta2 = theta23 - theta3;flag = 1;endendif -160<theta12&&theta12<160theta1 = theta12;if -45<theta31&&theta31<225theta3 = theta31;c1 = cosd(theta1);s1 = sind(theta1);c3 = cosd(theta3);s3 = sind(theta3);up_3 = -(a3 + a2*c3)*pz + (c1*px + s1*py)*(a2*s3 - d4);down_3 = (-d4 + a2*s3)*pz + (c1*px + s1*py)*(a2*c3 + a3);theta23 = atan2d(up_3,down_3);theta2 = theta23 - theta3;flag = 1;endif -45<theta32&&theta32<225theta3 = theta32;c1 = cosd(theta1);s1 = sind(theta1);c3 = cosd(theta3);s3 = sind(theta3);up_3 = -(a3 + a2*c3)*pz + (c1*px + s1*py)*(a2*s3 - d4);down_3 = (-d4 + a2*s3)*pz + (c1*px + s1*py)*(a2*c3 + a3);theta23 = atan2d(up_3,down_3);theta2 = theta23 - theta3;flag = 1;endendif flag == 1X(count) = px;Y(count) = py;Z(count) = pz;count = count + 1;endendendendplot3(X,Y,Z,'g.');工作空间求解如下:图2 工作空间图3 工作空间(XOY平面)图4 工作空间(XOZ平面)图5 可达工作空间(YOZ平面)。
ansay大作业
![ansay大作业](https://img.taocdn.com/s3/m/2d30bdd750e2524de5187e3e.png)
计算机集成制造技术大作业典型零件CAD建模与有限元分析哈尔滨工业大学2012年11月20日正文目录1任务与要求 (1)2建模过程 (2)3分析过程 (2)4分析结果 (5)5零件优化设计建议 (10)一、任务要求如图所示轴,工作时所受扭矩为T,轴材料为45# 钢,图中长度单位为mm。
建立三维实体模型,采用静力分析其变形和应力状况。
(提示:两键槽传递扭矩)二、建模过程根据题目要求,运用SolidWorks软件绘制如下零件图:三、分析过程本题采用ANSYS12软件对所建模型进行施加应力及变形状况分析。
第一步:打开ANSYS12软件,导入所建轴的模型如下:图7第二步:点击“Preferences”,选择“Structural”选项。
第三步:点击“Preprocessor”下的“Element Type”,选“Add/Edit/Delete”,在弹出的对话框中点击“Add”按钮,选择“Brick 8node 45”单元,点击“OK”,再点击“Close”关闭单元属性对话框。
第四步:按题目要求选择45号钢,其弹性模量约为200Gpa,所以输入“2e11”,泊松比为0.269,密度为7890kg/m³。
第五步:选用自由分格,如图8、9、10所示。
图8图9 图10第六步:选择“Solution”下的“New Analysis”,在弹出的对话框中选择“Static”。
第七步:施加约束图11添加约束第八步:施加载荷根据题目所给T=1600N.m,即给轴的两个键槽施加一对力偶,设键槽上力是均匀分布的,相当于在槽的中点施加一个集中应力,对于小端面,力的作用点距轴线为(128)/210+=,所以力大小为160000N;对于大端面,力的作用点距轴线为mm+=,所以力的大小为96969N,如图:(1815)/216.5mm图12第九步:问题求解图13四、分析结果按图14所示路径进行处理后,得到应力云图如图15所示图14由上图可以看出,在轴的小颈一端的键槽部分产生了很大的变形,说明其应力很大,大颈一端的键槽上应力较小。
maltab大作业
![maltab大作业](https://img.taocdn.com/s3/m/5be39029b4daa58da0114ac2.png)
Matlab应用技术学号:班级:姓名:成绩:1.答:Matlab语法eps—机器的浮点运算误差限。
PC机上eps的默认值为2.2204*10^-16,若某个量的绝对值小于eps,则可以认为这个量为0。
i和j—若i或j量不被改写,则它们表示纯虚数量j。
但在MATLAB程序编写过程中经常事先改写这两个变量的值,如在循环过程中常用这两个变量来表示循环变量,所以应该确认使用这两个变量时没被改写。
如果想恢复该变量,则可以用语句i=sqrt(-1)设置,即对-1求平方根。
Inf—无穷大量+∞的MATLAB表示,也可以写成inf。
同样地,-∞可以表示为-Inf。
在MATLAB程序执行时,即使遇到了以0为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成Inf,这样的定义方式符合IEEE的标准。
pi—圆周率π的双精度浮点表示。
lasterr—存放最新一次的错误信息。
此变量为字符串型,如果在本次执行过程中没出现这错误,则此变量为空字符串。
lastwarn—存放最新的警告信息。
若未出现过警告,则此变量为空字符串。
保留的变量ans—存放最近一次无赋值变量语句的运算结果。
end—最后一行(列)nargin—函数输入变量的实际个数nargout—函数返回变量的实际个数保留字%—后接注释数据结构一、数值型结构MATLAB语言中最常用的数值量为双精度浮点数,占8个字节(PS:与JAVA 的double型相同)(64位),遵从IEEE记数法,有11个指数位、53位尾数及一个符号位,值域的近似范围为-1.7*10^308至1.7*10^308,其MATLAB 表示为double()。
考虑到一些特殊的应用,MATLAB语言还引入了无符号的8位整形数据类型,其MATLAB表示为uint8(),其值域为0至255。
此外,在MATLAB中还可以使用其他的数据类型,如int8(),int16(),int32(),uint16(),uint32()等,每一个类型后面的数字表示其位数。
机器人技术大作业解析
![机器人技术大作业解析](https://img.taocdn.com/s3/m/1ceb6820763231126edb1148.png)
大作业:PUMA 机器人1. 坐标系建立利用D-H 参数法建立坐标系:2.D-H 参数表关节i θ(︒)i α(︒)i l i d 运动范围1 90 -90 0 0 -160°~160°2 0 0 a 2 d 2-225°~45° 3 90 90 -a 3 0-45°~225° 4 0 -90 0 4d-110°~170° 5 0 90 0 0 -100°~100° 66d-266°~266°3. 正运动学推导 3.1变换矩阵求取1i-1i 11Rot(,) Trans(0,0,d ) Trans(l ,0,0) Rot(,) = 00001i i i i i i i i i i i i i i i i i i i i i i c s c s s l c c c c c s l s A z x s c d θθαθαθθθαθαθθααα----⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥⎣⎦列各D-H 变换矩阵如下:11010101001000001-⎡⎤⎢⎥⎢⎥=⎢⎥-⎢⎥⎣⎦c s s c A 22122220222020010001c s a c s c a s A d -⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ 33233033303301000001c s a c s c a s A -⎡⎤⎢⎥--⎢⎥=⎢⎥⎢⎥⎣⎦344404040400100001-⎡⎤⎢⎥⎢⎥=⎢⎥-⎢⎥⎣⎦c s s c A d 455050505001000001c s s c A ⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥⎣⎦ 5666-60066000010001c s s c A d ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦注:为书写方面,本文中cos ,sin i i ci si θθ==又由00123456123456T A A A A A A =⋅⋅⋅⋅⋅,利用Matlab 进行符号运算,运行程序PUMAzhengyundongxue (程序详见附录)得:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=100060pz az sz nz py ay sy ny px axsx nx T其中- c6*(s5*(c1*c2*s3 + c1*c3*s2) + c5*(s1*s4 - c4*(c1*c2*c3 - c1*s2*s3))) - s6*(c4*s1 + s4*(c1*c2*c3 - c1*s2*s3))s6*(c1*c4 - s4*(c2*c3*s1 - s1*s2*s3)) - c6*(s5*(c2*s1*s3 + c3*s1*s2) nx ny == - c5*(c1*s4 + c4*(c2*c3*s1 - s1*s2*s3)))s4*s6*(c2*s3 + c3*s2) - c6*(s5*(c2*c3 - s2*s3) + c4*c5*(c2*s3 + c3*s2))nz ⎧⎪⎪⎪⎨⎪⎪=⎪⎩s6*(s5*(c1*c2*s3 + c1*c3*s2) + c5*(s1*s4 - c4*(c1*c2*c3 - c1*s2*s3))) - c6*(c4*s1 + s4*(c1*c2*c3 - c1*s2*s3))s6*(s5*(c2*s1*s3 + c3*s1*s2) - c5*(c1*s4 + c4*(c2*c3*s1 - s1*s2*s3))) sx sy ==+ c6*(c1*c4 - s4*(c2*c3*s1 - s1*s2*s3))s6*(s5*(c2*c3 - s2*s3) + c4*c5*(c2*s3 + c3*s2)) + c6*s4*(c2*s3 + c3*s2)sz ⎧⎪⎪⎪⎨⎪⎪=⎪⎩c5*(c1*c2*s3 + c1*c3*s2) - s5*(s1*s4 - c4*(c1*c2*c3 - c1*s2*s3)) c5*(c2*s1*s3 + c3*s1*s2) + s5*(c1*s4 + c4*(c2*c3*s1 - s1*s2*s3))c5*(c2*c3 - s2*s3) - c4*s5*(c2*s3 + c3*s2)ax ay az =⎧⎪=⎨⎪=⎩24623346- d *s1+d *(c1*c2*s3 + c1*c3*s2) - d *s5*(s1*s4 - c4*(c1*c2*c3 - c1*s2*s3)) + a *c1*c2 + c5*d6*(c1*c2*s3 + c1*c3*s2) +a *c1*s2*s3 -a *c1*c2*c3c1*d2 + d *(c2*s1*s3 + c3*s1*s2) + d *s5*(c px py ==263342631*s4 + c4*(c2*c3*s1 - s1*s2*s3)) + a *c2*s1 + c5*d *(c2*s1*s3 + c3*s1*s2) +a *s1*s2*s3 - a *c2*c3*s1d *(c2*c3 - s2*s3) - a *s2 + d *(c5*(c2*c3 - s2*s3) - c4*s5*(c2*s3 + c3*s2)) + a pz =3*c2*s3 +a *c3*s2⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩ 3.2变换矩阵验证 3.2.1初步验证根据DH 参数表中θi 的初始值,将其带入06T 后得到末端执行器的坐标为 px= -d 2py=a 2+d 4+d 6 pz=a 3与初始设定一致,因此初步判断变换矩阵正确。
MATLAB期末大作业
![MATLAB期末大作业](https://img.taocdn.com/s3/m/2c74686e8e9951e79b89271a.png)
1.龟兔赛跑本题旨在可视化龟兔赛跑的过程。
比赛的跑道由周长为P面积为A的矩形构成。
每单位时间,乌龟沿跑道缓慢前进一步,而兔子信心满满,每次以一个固定的概率决定走或不走。
如果选择走,就从2-10步中等概率选择一个步长。
每个单位时间用一个循环表示。
赛跑从矩形跑道左上点(0,0)开始,并沿顺时针方向进行。
不管是乌龟或兔子,谁先到达终点,比赛就告结束。
要求:编写MATLAB程序可视化上述过程。
程序以P,A以及兔子每次休息或前进的概率为输入参量。
程序必须可视化每个时刻龟兔赛跑的进程,并以红色“*”表示乌龟,蓝色的“—”表示兔子。
测试时可取P=460,A=9000。
通过上述例子,可否从理论和实验角度估计兔子休息或前进的概率,是的兔子和乌龟在概率意义下打平手。
2.黄金分割Fibonacci数列F n通过如下递推格式定义F n=F n-1+F n-2,其中F0=F1=1要求:1.计算前51项Fibonacci数,并存入一个向量2.利用上述向量计算比值F n/F n-13.验证该比值收敛到黄金比例(1+5)/23.图像处理此题旨在熟悉图像处理的基本操作,请各位自己选择一张彩色图像pMATLAB以三维数组读取一张彩图。
该彩图上每个像素位置分别存放一个取值0-255的三维向量,其三个分量分别表示该点的红(R)绿(G)蓝(B)强度信息。
要求:编写MATLAB程序,读入原始彩色图像,并且在一个图形窗口界面下显示六张图像。
这六张图分别是原始RGB彩图,及其5各变形:RBG,BRG,BGR,GBR和GRB。
每张子图要求以其对应变形命名。
最后将图像以a.jpg形式保存并黏贴至报告中。
提示:imread, imshow, cat。
matlab综合大作业(附详细答案)
![matlab综合大作业(附详细答案)](https://img.taocdn.com/s3/m/5cefa356dd88d0d233d46ac2.png)
m a t l a b综合大作业(附详细答案)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII《MATLAB语言及应用》期末大作业报告1.数组的创建和访问(20分,每小题2分):1)利用randn函数生成均值为1,方差为4的5*5矩阵A;实验程序:A=1+sqrt(4)*randn(5)实验结果:A =0.1349 3.3818 0.6266 1.2279 1.5888-2.3312 3.3783 2.4516 3.1335 -1.67241.2507 0.9247 -0.1766 1.11862.42861.5754 1.6546 5.3664 0.8087 4.2471-1.2929 1.3493 0.7272 -0.6647 -0.38362)将矩阵A按列拉长得到矩阵B;实验程序:B=A(:)实验结果:B =0.1349-2.33121.25071.5754-1.29293.38183.37830.92471.65461.34930.62662.4516-0.17665.36640.72721.22793.13351.11860.8087-0.66471.5888-1.67242.42864.2471-0.38363)提取矩阵A的第2行、第3行、第2列和第4列元素组成2*2的矩阵C;实验程序:C=[A(2,2),A(2,4);A(3,2),A(3,4)]实验结果:C =3.3783 3.13350.9247 1.11864)寻找矩阵A中大于0的元素;]实验程序:G=A(find(A>0))实验结果:G =0.13491.25071.57543.38183.37830.92471.65461.34930.62662.45165.36640.72721.22793.13351.11860.80871.58882.42864.24715)求矩阵A的转置矩阵D;实验程序:D=A'实验结果:D =0.1349 -2.3312 1.2507 1.5754 -1.29293.3818 3.3783 0.9247 1.6546 1.34930.6266 2.4516 -0.1766 5.3664 0.72721.2279 3.1335 1.1186 0.8087 -0.66471.5888 -1.67242.4286 4.2471 -0.38366)对矩阵A进行上下对称交换后进行左右对称交换得到矩阵E;实验程序:E=flipud(fliplr(A))实验结果:E =-0.3836 -0.6647 0.7272 1.3493 -1.29294.2471 0.80875.3664 1.6546 1.57542.4286 1.1186 -0.1766 0.9247 1.2507-1.6724 3.1335 2.4516 3.3783 -2.33121.5888 1.2279 0.6266 3.3818 0.13497)删除矩阵A的第2列和第4列得到矩阵F;实验程序:F=A;F(:,[2,4])=[]实验结果:F =0.1349 0.6266 1.5888-2.3312 2.4516 -1.67241.2507 -0.17662.42861.5754 5.3664 4.2471-1.2929 0.7272 -0.38368)求矩阵A的特征值和特征向量;实验程序:[Av,Ad]=eig(A)实验结果:特征向量Av =-0.4777 0.1090 + 0.3829i 0.1090 - 0.3829i -0.7900 -0.2579 -0.5651 -0.5944 -0.5944 -0.3439 -0.1272-0.2862 0.2779 + 0.0196i 0.2779 - 0.0196i -0.0612 -0.5682 -0.6087 0.5042 - 0.2283i 0.5042 + 0.2283i 0.0343 0.6786 0.0080 -0.1028 + 0.3059i -0.1028 - 0.3059i 0.5026 0.3660 特征值Ad =6.0481 0 0 0 00 -0.2877 + 3.4850i 0 0 00 0 -0.2877 - 3.4850i 0 00 0 0 0.5915 00 0 0 0 -2.30249)求矩阵A的每一列的和值;实验程序:lieSUM=sum(A)实验结果:lieSUM =-0.6632 10.6888 8.9951 5.6240 6.208710)求矩阵A的每一列的平均值;实验程序:average=mean(A)实验结果:average =-0.1326 2.1378 1.7990 1.1248 1.24172.符号计算(10分,每小题5分):1)求方程组20,0++=++=关于,y z的解;uy vz w y z w实验程序:S = solve('u*y^2 + v*z+w=0', 'y+z+w=0','y,z');y= S. y, z=S. z实验结果:y =[ -1/2/u*(-2*u*w-v+(4*u*w*v+v^2-4*u*w)^(1/2))-w] [ -1/2/u*(-2*u*w-v-(4*u*w*v+v^2-4*u*w)^(1/2))-w] z =[ 1/2/u*(-2*u*w-v+(4*u*w*v+v^2-4*u*w)^(1/2))] [ 1/2/u*(-2*u*w-v-(4*u*w*v+v^2-4*u*w)^(1/2))]2)利用dsolve 求解偏微分方程,dx dyy x dt dt==-的解; 实验程序:[x,y]=dsolve('Dx=y','Dy=-x')实验结果:x =-C1*cos(t)+C2*sin(t)y = C1*sin(t)+C2*cos(t)3.数据和函数的可视化(20分,每小题5分):1)二维图形绘制:绘制方程2222125x y a a +=-表示的一组椭圆,其中0.5:0.5:4.5a =;实验程序:t=0:0.01*pi:2*pi; for a=0.5:0.5:4.5; x=a*cos(t); y=sqrt(25-a^2)*sin(t); plot(x,y) hold on end实验结果:2) 利用plotyy 指令在同一张图上绘制sin y x =和10x y =在[0,4]x ∈上的曲线;实验程序:x=0:0.1:4; y1=sin(x); y2=10.^x;[ax,h1,h2]=plotyy(x,y1,x,y2); set(h1,'LineStyle','.','color','r'); set(h2,'LineStyle','-','color','g'); legend([h1,h2],{'y=sinx';'y=10^x'});实验结果:3)用曲面图表示函数22z x y =+;实验程序:x=-3:0.1:3; y=-3:0.1:3; [X,Y]=meshgrid(x,y); Z=X.^2+Y.^2; surf(X,Y,Z)实验结果:4)用stem 函数绘制对函数cos 4y t π=的采样序列;实验程序:t=-8:0.1:8;y=cos(pi.*t/4); stem(y)实验结果:4. 设采样频率为Fs = 1000 Hz ,已知原始信号为)150π2sin(2)80π2sin(t t x ⨯+⨯=,由于某一原因,原始信号被白噪声污染,实际获得的信号为))((ˆt size randn x x+=,要求设计出一个FIR 滤波器恢复出原始信号。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/0fceab1910661ed9ac51f315.png)
M A T L A B大作业作业要求:(1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。
(2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果分析、本课程学习体会、列出主要的参考文献。
打印稿不要求MATLAB程序,但电子稿要包含MATLAB程序。
(3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话则长,无话则短。
90问题五:利用MATLAB软件绘制一朵鲜花,实现一定的仿真效果。
提示:二维/三维绘图,对花瓣、花蕊、叶片、花杆等的形状和颜色进行详细设置。
第二类:插值与拟合。
(B级)问题一:有人对汽车进行了一次实验,具体过程是,在行驶过程中先加速,然后再保持匀速行驶一段时间,接着再加速,然后再保持匀速,如此交替。
注意,整个实验过程中从未减速。
在一组时间段50个时间点的速度。
(2)绘制插值图形并标注样本点。
问题二:估算矩形平板各个位置的温度。
已知平板长为5m,宽为3m,平板上3×5栅格点上的温度值为44,25,20,24,30;42,21,20,23,38;25,23,19,27,40。
(1)分别使用最近点插值、线性插值和三次样条插值进行计算。
(2)用杆图标注样本点。
(3)绘制平板温度分布图。
对a,b,c,d的值。
提示:曲线拟合并绘图分析第三类:定积分问题。
(B级)问题一:地球密度随着离中心(r=0)距离的变化而变化,不同半径处的密度如表所示,试估问题二:河道平均流量Q(m3/s)可使用速度和深度的乘积的积分来计算(河道横截面不规则),公式如下。
其中V(x)是离岸x(m)距离处的水速(m/s),H(x)是离岸x距离处的水深(m)。
根据收集到过5(1(2(3(Q,单位是m(1(2(1(2(3)将节点1的力改为方向向上,计算这种改变对H2和V2的影响。
(4)将节点1的力撤销,而在节点1和2处施加1500N的水平外力,求节点3处垂直反作用力(V3)。
人工智能大作业(二)2024
![人工智能大作业(二)2024](https://img.taocdn.com/s3/m/729e9c1aac02de80d4d8d15abe23482fb5da024f.png)
人工智能大作业(二)引言概述:本文旨在深入探讨人工智能大作业的相关内容。
人工智能作为一门快速发展的学科,对于学习者而言,进行相关的大作业是加深理解和应用该领域知识的重要方式之一。
本文将分析人工智能大作业的五个主要方面,包括数据集选择、算法设计、模型训练、结果分析以及展示与报告。
正文:1. 数据集选择:- 研究不同领域的数据集,并从中选择最适合研究课题的数据集。
- 评估数据集的规模、特征、质量等因素,并确保其能够支持后续的算法设计和模型训练过程。
- 如果需要,进行数据预处理操作,如去除噪声、处理缺失值等,以提高数据集的质量和可用性。
- 确保数据集的隐私和安全性,遵循相关法规和伦理原则。
2. 算法设计:- 了解和研究相关领域的常用算法,并选择适合问题的算法。
- 分析算法的优势和局限性,并根据研究课题的需要进行适当的修改和改进。
- 设计算法的流程和步骤,明确数据的输入和输出,以及各个阶段的处理过程。
- 考虑算法的效率和可扩展性,确保能够处理大规模的数据集和复杂的任务。
3. 模型训练:- 根据选定的算法,准备训练数据集和验证数据集,并进行数据集划分。
- 初始化模型参数,并进行模型训练和优化,以使模型能够更好地拟合训练数据。
- 考虑使用交叉验证和调参等技术,来选择最优的模型参数和超参数。
- 监控训练过程,分析模型在训练集和验证集上的性能表现,并根据需要进行调整和改进。
4. 结果分析:- 对训练得到的模型进行性能评估,并使用不同的评测指标来衡量模型的好坏。
- 分析模型在不同类型数据上的表现差异,并探讨其原因和解决办法。
- 进行模型的可解释性分析,了解模型对于预测结果的依赖和影响因素。
- 与其他相关工作进行比较,评估自己的研究成果在同领域中的创新性和贡献度。
5. 展示与报告:- 将实现的算法和训练得到的模型进行演示和展示,以直观地呈现出其性能和效果。
- 准备详细的报告文档,清晰地描述整个研究过程,包括问题定义、方法设计、实验结果和分析等内容。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/024de7aeb0717fd5360cdcc6.png)
实验七图像的形态学运算一、实验目的1.掌握图像的奇异值分解与合成2.能够利用模板操作实现图像的腐蚀运算3.能够利用模板操作实现图像的膨胀运算4.掌握图像的开、闭运算二、实验内容1. 读下面的程序,分析该程序要完成什么样的功能。
A=[1 2 1;2 3 2;1 2 1];[u d v]=svd(A);[nx,ny]=size(A);I=eye(nx,nx);for i=nx:-1:2I(i,i)=0;endB=u*I*d*v';BX=imread('cameraman.bmp');X=double(X);A=X(20:256,20:256);[nx,ny]=size(A);I=eye(nx,nx);for i=nx:-1:21I(i,i)=0;end[u d v]=svd(A);B=u*I*d*v';A=uint8(A);`B=uint8(B);subplot(2,2,1);imshow(A)subplot(2,1,2);imshow(B)该程序的功能是对图像分别进行膨胀和腐蚀的操作!2. 利用模板操作,编写程序实现二值图像的腐蚀运算函数imerode的功能。
程序:a=imread('D:\005.bmp');b=~a;m=[1;1;1];n=[1 1 0];p=[0 0 0;0 1 0;0 0 0];q=[0 0 1;0 0 0;1 0 0];c1=imerode(b,m);c2=imerode(b,n);c3=imerode(b,p);c4=imerode(b,q); subplot(1,5,1);imshow(b)subplot(1,5,2);imshow(c1)subplot(1,5,3);imshow(c2)subplot(1,5,4);imshow(c3)subplot(1,5,5);imshow(c4)3. 利用模板操作,编写程序实现二值图像的膨胀运算函数imdilate的功能。
Maab考试题库答案
![Maab考试题库答案](https://img.taocdn.com/s3/m/9942bfd7be23482fb5da4c22.png)
填空题1、标点符号; %—用来表示该行为注释行。
可以使命令行不显示运算结果,2、x 为0 ~4pi ,步长为0.1pi 的向量,使用命令 x=0:0.1*pi:4*pi 创建。
3、输入矩阵A=[1323−57569] ,使用全下标方式用A(2,2)取出元素“-5 ”,使用单下标方式用A(5)取出元素“-5 ”。
4、符号表达式sin(2*a+t)+m 中独立的符号变量为 t 。
5、M 脚本文件和M 函数文件的主要区别是M 脚本文件没有函数定义和M 函数文件有函数定义_______。
6. 设x 是一维数组,x 的倒数第3个元素表示为x(_end-2_)设y 为二维数组,要删除y 的第34行和48列,可使用命令y(34,:)=[] ;y(:,48)=[];7. 将变量x 以Ascii 文本格式存储到文件fname.txt ,应使用命令 save _x ;8. 在while 表达式, 语句体, End 循环语句中,表达式的值 非零 时表示循环条件为真,语句体将被执行,否则跳出该循环语句;9.要从键盘读入一个字符串并赋值给变量x ,且给出提示“Who is she?”,应使用命令x=input(‘Who is she?’,’s’) ;10.设A=(a ij )m∗n 和B=(b ij )m∗n 和C=(c ij )m∗n 均为m*n 矩阵,且存在于WorkSpace 中,要产生矩阵D=(a ij −c ij b ij c ij ⁄)m∗n ,可用命令D=(A-C)/B.^C ,计算|(A ′B )−1| 可用命令det(inv(A’*B) 11. 在MATLAB 命令窗口中的“>>”标志为MATLAB 的 命令行 提示符,“│”标志为 输入 提示符。
12.已知A=[1 2 3;4 5 0;7 8 9];B=[1 0 3;1 5 0;0 1 2];写出下列各指令运行的结果。
A+B ;A.*B ;A==B ;ans= [2,2,6;5,10,0;7,9,11]ans= [1,0,9;4,25,0;0,8,18]ans= [1,0,1;0,1,1;0,0,0]13.已知A 是矩阵,求A 的对角矩阵函数是 diag ;求A 的下三角矩阵函数是 tril 。
最新用matlab解析实际案例
![最新用matlab解析实际案例](https://img.taocdn.com/s3/m/6e0831a080eb6294dd886c88.png)
Matlab大作业专业:东凌经济管理学院班级:小组成员:2012年5月1成员分工:**(组长):第一题模型一建立,文档编写***:第一题模型二建立,文档编写***:第二题模型建立2第一题某小型超市出售某一品牌八宝粥,其需求量与消费者平均收入和商品价格密切相关,根据近期几个月每一个月的消费记录以及消费者收入市场调查,统计如下表。
现在在一个地区新建一所同样的超市,出售同样一款八宝粥,该超市附近消费者平均收入为4000元,超市经理想知道八宝粥定价6元时,进多少货才会比较合适。
需求量100 75 80 70 50 65 90 100 110 60 收入4000 2400 4800 2000 1200 1600 5200 4400 5200 1200 价格 5 7 6 6 8 7 5 4 3 92.1 基本假设1)假设该品牌八宝粥的超市库存量与需求量一致,不存在多余库存。
2)假设超市每个月就进一次货。
3)假设超市之前调查的数据充分准确。
4)假设在新超市,人群收入以及商品价格对需求量的影响与之前规律类似。
5)假设该品牌八宝粥的需求量除了与消费者收入和商品价格有关,其他因素影响很小,可以忽略不计。
2.2 符号设定:消费者收入向量。
)(income I:商品价格向量。
)(price P :商品需求向量。
)(t requiremen R2.3 模型建立2.3.1 模型分析:因为有商品价格P 和消费者收入I 两个参数对商品需求量R 产生影响,所以我们选择采用回归模型解决这个问题。
模型一:多元二项式回归模型222211210P I P I R βββββ++++=Matlab 程序:I=[4000 2400 4800 2000 1200 1600 5200 4400 5200 1200]; P=[5 7 6 6 8 7 5 4 3 9];R=[100 75 80 70 50 65 90 100 110 60]; f=[I' P'];rstool(f,R','purequadratic')程序运行结果以及图像:预测结果beta =110.53130.0366-26.5709-4.7229*10^(-6)1.8475rmse =4.5362residuals =5.2724-0.7162-4.5158-1.9390-3.33153.45663.4843-3.4452-0.09761.8320结果分析:由实验可得回归模型为:228475.1)6(^10*7229.4-5709.260366.05313.110P I P I R +--+=,因为剩余标准差为4.5362,说明此回归模型的显著性较好。
MATLAB作业2参考答案(2018年)
![MATLAB作业2参考答案(2018年)](https://img.taocdn.com/s3/m/873fed719a6648d7c1c708a1284ac850ac020455.png)
MA TLAB 作业二参考答案1、试求下面线性代数方程的解析解与数值解,并检验解的正确性。
2932114010110503848246303356684953X -----⎡⎤⎡⎤⎢⎥⎢⎥----⎢⎥⎢⎥=⎢⎥⎢⎥---⎢⎥⎢⎥------⎣⎦⎣⎦【求解】求出A , [A;B ] 两个矩阵的秩,可见二者相同,所以方程不是矛盾方程,应该有无穷多解。
>> A=[2,-9,3,-2,-1; 10,-1,10,5,0; 8,-2,-4,-6,3; -5,-6,-6,-8,-4]; B=[-1,-4,0; -3,-8,-4; 0,3,3; 9,-5,3]; [rank(A), rank([A B])] ans =4 4用下面的语句可以求出方程的解析解,并可以验证该解没有误差。
>> x0=null(sym(A));x_analytical=sym(A)\B; syms a; x=a*[x0 x0 x0]+x_analyticalx =[ a+967/1535, a-943/1535, a-159/1535][ -1535/1524*a, -1535/1524*a, -1535/1524*a][ -3659/1524*a-1807/1535,-3659/1524*a-257/1535,-3659/1524*a-141/1535] [ 1321/508*a+759/1535, 1321/508*a-56/1535, 1321/508*a-628/1535] [ -170/127*a-694/307, -170/127*a+719/307, -170/127*a+103/307] >> A*x-B ans = [ 0, 0, 0][ 0, 0, 0] [ 0, 0, 0] [ 0, 0, 0]用数值解方法也可以求出方程的解,但会存在误差,且与任意常数a 的值有关。
>> x0=null(A); x_numerical=A\B; syms a; x=a*[x0 x0 x0]+x_numerical; vpa(x,10)ans =[ .2474402553*a+.1396556436, .2474402553*a-.6840666849, .2474402553*a-.1418420333][-.2492262414*a+.4938507789,-.2492262414*a+.7023776988e-1,-.2492262414*a+.3853511888e-1][ -.5940839201*a, -.5940839201*a, -.5940839201*a][ .6434420813*a-.7805411315, .6434420813*a-.2178190763,.6434420813*a-.5086089095][-.3312192394*a-1.604263460, -.3312192394*a+2.435364854, -.3312192394*a+.3867176824] >> A*x-B[ 1/18014398509481984*a, 1/18014398509481984*a, 1/18014398509481984*a] [ -5/4503599627370496*a, -5/4503599627370496*a, -5/4503599627370496*a][ -25/18014398509481984*a, -25/18014398509481984*a, -25/18014398509481984*a] [ 13/18014398509481984*a, 13/18014398509481984*a, 13/18014398509481984*a]2、求解下面的联立方程,并检验得出的高精度数值解(准解析解)的精度。
人工智能导论课大作业设置探讨
![人工智能导论课大作业设置探讨](https://img.taocdn.com/s3/m/784e17557ed5360cba1aa8114431b90d6d858945.png)
人工智能导论课大作业设置探讨黄宇;马少平【期刊名称】《计算机教育》【年(卷),期】2011(000)015【摘要】Course project helps a lot for the students to understand the knowledge thoroughly, and to improve their capability of problem solving, algorithm design and system implementation. Based on the teaching experience on related courses for many years, this paper explores the project design for the course of introduction to Artificial Intelligence (AI), and proposes several essential prerequisites to set up a course project. Siziqi, which is a similar but simpler chess game to Gobang, is designed as the course project with specified reasons and evaluation rules. Observations and analyses are further made on the students' solutions, which show that it is feasible to take Siziqi as a project for AI.%大作业的设置对学生深入理解课程内容,提高求解问题的能力具有很大的帮助。
文章在笔者多年从事人工智能教学的基础上,探讨人工智能导论课的大作业设置问题,提出大作业应具备的基本条件,说明选择四子棋作为大作业的理由,给出四子棋大作业的评分规则,并对学生的大作业总体情况进行分析,验证选择四子棋作为大作业题目的合理性。
matlab大作业
![matlab大作业](https://img.taocdn.com/s3/m/3ed7ebfb4693daef5ef73d80.png)
安阳工学院专业课课程大作业课程名称(中文) MATLAB编程应用成绩姓名李健班级 10通信工程学号 201002030013日期 2010年12月22日关于matlab图形绘制的应用摘要:图形处理系统使得MA TLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。
它包括强大的二维三维图形函数、图像处理和动画显示等函数。
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
关键词:mat lab 图形绘制编程应用二维三维一、设计目的(1)了解MATLAB平面绘图的命令,如MATLAB常用的二维及三维绘图命令。
(2)了解MATLAB立体图形的绘制,其中包括常用的立体绘图函数的理解。
(3)熟练掌握MATLAB软件,编写计算平均值和标准差公式,编译程序运行是否有错误并改正。
(4)掌握使用软件MATLAB 用数学方法生成符合要求的图形,会用数学方法对图形图像作需要的处理。
二、设计要求(1) 应能独立操作,独立使用软件MATLAB 及编写程序及操作;(2) 每次课后在课外对教师提出的问题的解决程序或者命令在第二次上课前准备好;(3) 综合实验项目涉及到的数学知识必须在教师指导下在课外作好复习。
三、Matlab介绍及功能1、matlab的简介Matlab的图形绘制和数值计算的功能是很强大,熟练的掌握可以为我们解决很多的实际问题。
它和c语言、java语言等一样也是一门独立存在的语言,它强大而智能化的作图功能更好的解决了这方面的问题。
下面通过几个具体的实例应用来说这一点。
2、MA TLAB的绘图功能:(1)二维绘图:A、plot——最基本的二维图形指令:1. 单窗口单曲线绘图;2. 单窗口多曲线绘图;3. 单窗口多曲线分图绘图;4. 多窗口绘图;5.可任意设置颜色与线型;6.图形加注功能;7.fplot——绘制函数图函数;8.ezplot——符号函数的简易绘图函数C、特殊二维绘图函数:bar——绘制直方图;polar——绘制极坐标图;hist——绘制统计直方图;stairs——绘制阶梯图;stem——绘制火柴杆图;rose——绘制统计扇形图;comet——绘制彗星曲线;errorbar——绘制误差棒图;compass——复数向量图(罗盘图);feather——复数向量投影图(羽毛图);quiver——向量场图;area——区域图;pie——饼图;convhull——凸壳图;scatter——离散点图。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/9c82caba804d2b160a4ec095.png)
M A T L A B大作业(总15页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--MATLAB大作业作业要求:(1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。
(2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果分析、本课程学习体会、列出主要的参考文献。
打印稿不要求MATLAB程序,但电子稿要包含MATLAB程序。
(3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话则长,无话则短。
不要抄袭复制,可以参考网上、文献资料的内容,但要理解,要变成自己的语言,按自己的思路组织内容。
(4)从给出的问题中至少选择一题(多做不限,但必须独立完成,严禁抄袭)。
(5)大作业占过程考核的20%,从完成情况、工作量、作业文档方面评分。
第一类:绘制图形。
(B级)问题一:斐波那契(Fibonacci)螺旋线,也称黄金螺旋线(Golden spiral),是根据斐波那契数列画出来的螺旋曲线,自然界中存在许多斐波那契螺旋线的图案,是自然界最完美的经典黄金比例。
斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契螺旋线,如图所示。
问题二:绘制谢尔宾斯基三角形(Sierpinskitriangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集。
其生成过程为:取一个实心的三角形(通常使用等边三角形),沿三边中点的连线,将它分成四个小三角形,然后去掉中间的那一个小三角形。
接下来对其余三个小三角形重复上述操作,如图所示。
问题三:其他分形曲线或图形。
分形曲线还有很多,教材介绍了科赫曲线,其他还有皮亚诺曲线、分形树、康托(G. Cantor)三分集、Julia集、曼德布罗集合(Mandelbrot set),等等。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/c4d10a63af1ffc4ffe47acf4.png)
线性离散系统的分析与校正机电工程系自动化(数控)本(2)班杨森慧 20090705232MATLAB的名称源自Matrix Laboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。
MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。
程序:num=[1];den=conv([1 0],[1 1]);T=1;[numz,denz]=c2dm(num,den,T,' zoh');printsys(numz,denz)接线图:接线图:结果分析:系统为一拍系统;D(z)=1.582(1-0.368z^-1).程序: plot(tout,yout);C(z)= 743.0343.239.379.2)668.0215.0(568.023423+-+---z z z z z z z >> T=0.1;>> sys1=tf([150,105],[1,10.1,151,105]);>> sys2=tf([0.568 -0.1221,-0.3795],[1,-1.79,1.6,-0.743],T);>> step(sys1,sys2,4);grid;>> G0=zpk([],[0 -10],1); Gd=c2d(G0,0.01,'zoh'); >> D=zpk([0.993],[0.999],150,0.01); G=Gd*D; >> sysd=feedback(G,1);>> t=0:0.01:2;>> step(sysd,t);>> grid;>> G0=zpk([],[0 -10],1); Gd=c2d(G0,0.01,'zoh');>> D=zpk([0.993],[0.999],150,0.01); G=Gd*D;>> sysd=feedback(G,1);>> t=0:0.01:2;>> step(sysd,t);>> grid;>> T=0.1;>> t=0:0.1:2;>> u=t;>> sys=tf([0.568,-0.1221,-0.3795],[1,-1.79,1.6,-0.743],T);>> lsim(sys,u,t,0);grid;分析:(1)取Gc(s)的参数K=150,a=0.7,b=0.1;Σ%=30.9%,ts=1.03s,基本满足设计指标。
马克思主义基本原理大作业-人工智能分析报告
![马克思主义基本原理大作业-人工智能分析报告](https://img.taocdn.com/s3/m/59ec6079f242336c1eb95ecb.png)
关于人工智能技术的专业调查报告前言:随着现代科学技术的飞速发展,先进的技术在各个领域都得到了广泛的应用,使得生产力获得了大幅度的提高,为改善人民生活水平作出了巨大贡献。
下一次生产力飞跃的突破口在哪里?目前越来越多的科学家把希望寄托于人工智能。
他们认为人工智能将带来一次史无前例的技术革命。
一、人工智能定义:人工智能(artificialintelligence,简记为AI)是当前科学技术发展中的一门前沿学科。
它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。
它是在计算机科学、控制论、信息论、神经心理学、哲学、语言学等多种学科研究的基础上发展起来的综合性边缘学科。
人工智能的最终研究目标是构造智能计算机。
二、人工智能简史:人工智能的传说可以追溯到古埃及,但随着1941年以来电子计算机的发展,技术已最终可以创造出机器智能,“人工智能”(ArtificialIntelligence)一词最初是在1956年Dartmouth学会上提出的,从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展,在它还不长的历史中,人工智能的发展比预想的要慢,但一直在前进,从40年前出现到现在,已经出现了许多AI程序,并且它们也影响到了其它技术的发展。
虽然计算机为AI提供了必要的技术基础,但直到50年代早期人们才注意到人类智能与机器之间的联系。
1955年末,Newell 和Simon做了一个名为"逻辑专家"(LogicTheorist)的程序.这个程序被许多人认为是第一个AI 程序。
70年代许多新方法被用于AI开发,其中一个标志性进展是专家系统。
80年代AI被引入了市场,并显示出实用价值。
可以确信,它将是通向21世纪之匙。
三、下面就由我带领大家一起一起来观看我们小组在有关人工智能调查过程中所获得的的收获:根据调查结果我们不难看出相对于对人工智能不了解的人数来看对其有一定了解的人数大约占了调查总人数的87%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于M A T L A B识别图片中的文字知识点:图像识别图像处理计算机视觉实验目的:以MATLAB为工具,识别图片中的文字。
问题描述:交通是一个十分重要的问题,红绿灯上的摄像头可以辨别车主的身份。
现在,我们是否能够用matlab设计一个图像识别的系统,通过车牌号的来识别相应的数字。
问题分析及模型建立:第一步:确定车牌号的区域对于一张图像在matlab中,在处理图像元素时用(x,y,z)三坐标的形式表达的灰度集时,其中,x和y是空间坐标,z是f 在坐标(x,y)处的值,就可以表达图像在该坐标轴上的点。
再将,将f(x,y)的数值简单地显示为一个矩阵,就可以定量地表达了一幅数值图像。
矩阵中的每个元素称为像素。
所以,如果我们想要截取一段车牌号的图像,我们就可以扫描图像每一个点的像素。
然后我们进行恢复处理,算子边缘检测,腐蚀,闭操作,删除小对象得到我们就可以利用RGB的值找到白色区域的边界,然后我们利用边界,截取我们的原图像就可以得到我们所需要的车牌号的区域了。
第二步:进行文字的分割在进行分割之前,就需要将我们所获得的车牌号的区域的图像进行进一步的处理,突出我们需要的文字部分。
灰度处理彩色的图片占用的空间比较大,处理会花费很长的时间,先将图片进行灰度处理二值化再将图片二值化,将图片的256个灰度级强制减少到只有{0,255}2个灰度级,更加方便了后续的文字识别识别。
均值滤波均值滤波是对是对图像进行局部平均, 以平均值来代表该像素点的灰度值。
矩形滤波器对这个二维矢量的每一个分量进行独立的平滑处理。
获得一张比较干净清晰的图像。
腐蚀和膨胀腐蚀可以分割独立的图像元素,膨胀用于连接相邻的元素,更加利于图像的分割进行完图像的预处理,就可以开始图像的切割了首先进行边缘的切割,处理完后的图像为黑底白字。
其中黑色为0,白色1为。
这样我们就可以从四个边缘进行扫描,若行或者列像素之和0的话,就为背景,这样就可以继续向内推移,直到和不为0的位置为止。
这样就进行了边缘的切割。
接下来,先进行文字的切割,文字和字母、数字在长度和宽度上有较大的差别,所以需要单独的拿出来。
因为号码是平铺过来的,所以我们进行列的扫描。
先从最左边进行扫描,若列像素之和不为0的话,则说明有文字,直到和为0的时候停止。
但是如果扫描出来的宽度太小的话就说明背景可能有白色区域干扰。
这时,应该将刚刚扫描出来的区域置黑,再次进行扫描,截取图像。
同理,数字和字母可同样按着上面的方式扫描,截取。
截取后的图像模板的配对所有的文字数字和字母都截取下来后,我们需要将所得的图片统一的量化为同样大小的图像方便比对。
统一量化后的图像完成了这部的操作之后,就需要建立一个小型的模板库。
将车牌号常见的文字、十个数字和26个英文字母存储为上面同样大小的二值化图片,并且以对应字符的名称命名。
将所有的模板放在一起,按照一定的顺序排列。
然后,我们就可以调用我们已经切割好的图片和模板内部的图片进行相减,寻找差别最小的图片进行匹配,这样就可以识别出车牌号上的字符了。
问题求解:matlab代码:主函数function [d]=main(jpg)close allclcI=imread('Car.jpg');%读入车牌图像Car.jpgI1=rgb2gray(I);I2=edge(I1,'roberts',0.15,'both');se=[1;1;1];I3=imerode(I2,se);se=strel('rectangle',[25,25]);I4=imclose(I3,se);I5=bwareaopen(I4,2000);figure(1),imshow(I5);title('从对象中移除小对象');[y,x,z]=size(I5);%图像以(y,x,z)表达灰度集,x,y为坐标,z为对应位置的值myI=double(I5);%转化为双精度,便于确定范围tic % 测定算法执行的时间,开始计时Blue_y=zeros(y,1);for i=1:yfor j=1:xif(myI(i,j,1)==1)% 寻找y轴方向的白色区域Blue_y(i,1)= Blue_y(i,1)+1; % 是蓝色区域的则进行计数endendend[temp MaxY]=max(Blue_y);%Y方向车牌区域确定 temp(最多点数):所有行中,最多的累积PY1=MaxY;while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;end %Y轴方向的上限PY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;end %Y轴方向的的下限IY=I(PY1:PY2,:,:);%%%%%% X方向 %%%%%%%%%Blue_x=zeros(1,x);%进一步确定x方向的车牌区域for j=1:xfor i=PY1:PY2 %只需要扫描PY1:PY2 的部分,简化程序if(myI(i,j,1)==1)Blue_x(1,j)= Blue_x(1,j)+1; endendendPX1=1;while ((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;end %确定x轴的右边界PX2=x;while ((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;end %确定x轴的左边界PX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:); %确定图片的截取区域t=toc; % 读取程序的运行时间a=imread('dw.jpg'); %读入已经截取好的图像A=size(a);if length(A)==3b=rgb2gray(a);elseb=a;endfigure(8);subplot(3,2,1),imshow(b),title('1.车牌灰度图像') g_max=double(max(max(b)));g_min=double(min(min(b)));T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值[m,n]=size(b);d=(double(b)>=T); % d:二值图像imwrite(d,'2.车牌二值图像.jpg');figure(8);subplot(3,2,2),imshow(d),title('2.车牌二值图像') figure(8),subplot(3,2,3),imshow(d),title('3.均值滤波前') % 滤波h=fspecial('average',3); %进行均值滤波imwrite(d,'4.均值滤波后.jpg');figure(8),subplot(3,2,4),imshow(d),title('4.均值滤波后') % 某些图像进行操作% 膨胀或腐蚀se=eye(2); % eye(n)可返回一个2*2单位矩阵[m,n]=size(d);%图像为二值图像,x,y为坐标if bwarea(d)/m/n>=0.365 %计算二值图像中对象的总面积d=imerode(d,se); %实现图形的腐蚀elseif bwarea(d)/m/n<=0.235d=imdilate(d,se);%实现图像的膨胀endimwrite(d,'5.膨胀或腐蚀处理后.jpg');figure(8),subplot(3,2,5),imshow(d),title('5.膨胀或腐蚀处理后')% 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割d=qiege(d); %截掉边界黑色的部分[m,n]=size(d); %图像已经切割的图像的坐标figure,subplot(2,1,1),imshow(d),title(n)k1=1;k2=1;s=sum(d);j=1;while j~=nwhile s(j)==0j=j+1;end %扫过的地方全为黑色,则向右移动,直到不是停止k1=j; %确定截图的左边界while s(j)~=0 && j<=n-1j=j+1;end %继续扫描,扫过的地方不全为黑色,向右移动,直到不是停止 k2=j-1; %确定截图的右边界if k2-k1>=round(n/6.5)[val,num]=min(sum(d(:,[k1+5:k2-5])));d(:,k1+num+5)=0; % k1+num+5列的位置赋值为黑色,分割endend% 再切割d=qiege(d);% 切割出 7 个字符y1=10;y2=0.25;flag=0;word1=[];while flag==0[m,n]=size(d);left=1;wide=0;while sum(d(:,wide+1))~=0wide=wide+1;end %扫过的地方不全为黑色,向右移动,直到不是停止if wide<y1 % 如果wide小于y1时,从数值判断没有切好,认为是左侧干扰d(:,[1:wide])=0; %将此片区域全部转化为黑色,继续进行切割d=qiege(d);elsetemp=qiege(imcrop(d,[1 1 wide m])); %返回已经切割好的区域[m,n]=size(temp);all=sum(sum(temp));two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:)));if two_thirds/all>y2flag=1;word1=temp; % WORD 1endd(:,[1:wide])=0;d=qiege(d);endend% 分割出第二个字符[word2,d]=getword(d);%getword的函数与上面类似,字母、数字和文字在一些细节上需要去区分% 分割出第三个字符[word3,d]=getword(d);% 分割出第四个字符[word4,d]=getword(d);% 分割出第五个字符[word5,d]=getword(d);% 分割出第六个字符[word6,d]=getword(d);% 分割出第七个字符[word7,d]=getword(d);subplot(5,7,1),imshow(word1),title('1'); subplot(5,7,2),imshow(word2),title('2'); subplot(5,7,3),imshow(word3),title('3'); subplot(5,7,4),imshow(word4),title('4'); subplot(5,7,5),imshow(word5),title('5'); subplot(5,7,6),imshow(word6),title('6'); subplot(5,7,7),imshow(word7),title('7'); [m,n]=size(word1);% 将生成的图片归一化大小为 40*20word1=imresize(word1,[40 20]);word2=imresize(word2,[40 20]);word3=imresize(word3,[40 20]);word4=imresize(word4,[40 20]);word5=imresize(word5,[40 20]);word6=imresize(word6,[40 20]);word7=imresize(word7,[40 20]);subplot(5,7,15),imshow(word1),title('1'); subplot(5,7,16),imshow(word2),title('2');subplot(5,7,17),imshow(word3),title('3');subplot(5,7,18),imshow(word4),title('4');subplot(5,7,19),imshow(word5),title('5');subplot(5,7,20),imshow(word6),title('6');subplot(5,7,21),imshow(word7),title('7');imwrite(word1,'1.jpg');imwrite(word2,'2.jpg');imwrite(word3,'3.jpg');imwrite(word4,'4.jpg');imwrite(word5,'5.jpg');imwrite(word6,'6.jpg');imwrite(word7,'7.jpg');liccode=char(['0':'9' 'A':'Z' '苏豫陕鲁晋']); %建立自动识别字符代码表SubBw2=zeros(40,20); %40*20的零矩阵l=1;for I=1:7ii=int2str(I); %int2str整型转换字符串t=imread([ii,'.jpg']);SegBw2=imresize(t,[40 20],'nearest'); %改变图片的大小if l==1 %第一位汉字识别kmin=37;kmax=41; %模板中汉字所在的位置elseif l==2 %第二位 A~Z 字母识别kmin=11;kmax=36; %模板中数字所在的位置else l>=3 %第三位以后是字母或数字识别kmin=1;kmax=36; %模板中字母所在的位置endfor k2=kmin:kmaxfname=strcat('字符模板\',liccode(k2),'.jpg');SamBw2=imread(fname);Error(k2)=sum(sum(abs(SegBw2-SamBw2)));%将现有字符逐个与模板字符相减,认为相减误差最小的现有字符与该模板字符匹配endError1=Error(kmin:kmax);MinError=min(Error1);findc=find(Error1==MinError);%寻找最匹配的字符Code(l*2-1)=liccode(findc(1)+kmin-1);%将上述找到的字符位置与liccode中的字符链接上Code(l*2)=' ';%在字符之间加空格l=l+1;endfigure(10),imshow(a),title (['车牌号码:', Code],'Color','b'); 函数getwordfunction [word,result]=getword(d)word=[];flag=0;y1=8;y2=0.5;while flag==0[m,n]=size(d);wide=0;while sum(d(:,wide+1))~=0 && wide<=n-2wide=wide+1;endtemp=qiege(imcrop(d,[1 1 wide m]));[m1,n1]=size(temp);if wide<y1 && n1/m1>y2d(:,[1:wide])=0;if sum(sum(d))~=0d=qiege(d); % 切割出最小范围else word=[];flag=1;endelseword=qiege(imcrop(d,[1 1 wide m]));d(:,[1:wide])=0;if sum(sum(d))~=0;d=qiege(d);flag=1;else d=[];endendend%endresult=d;qiege函数function e=qiege(d)[m,n]=size(d);top=1; %下端bottom=m; %下端left=1; %左端right=n; % 右端while sum(d(top,:))==0 && top<=m %如果矩阵d的第top行的和为0的话top=top+1;endwhile sum(d(bottom,:))==0 && bottom>=1 %如果矩阵d的第bottom行的和为0的话bottom=bottom-1;endwhile sum(d(:,left))==0 && left<=n %如果矩阵d的第left列的和为0的话left=left+1;endwhile sum(d(:,right))==0 && right>=1 %如果矩阵d的第right列的和为0的话right=right-1;enddd=right-left; %切割的宽度hh=bottom-top; %切割的高度e=imcrop(d,[left top dd hh]); %返回该截取的区域结果分析:1,这种垂直扫描的方式,图像的中车的牌照需要接近水平,如果倾斜的比较厉害,很难只截取车牌号的区域。