汽车标志识别设计_MATLAB程序设计

汽车标志识别设计_MATLAB程序设计
汽车标志识别设计_MATLAB程序设计

设计目的:车牌定位系统的目的在于正确获取整个图像中车标的区域,并识别出车标。 程序效果:

程序实现:

STEP1:输入待处理的原始图像:

程序:

1

2

3

4 clear;clc;close all; %Step1 获取图像 装入待处理彩色图像并显示原始图像

Scolor = imread(

'1.jpg');%imread 函数读取图像文件 subplot(3,4,1);imshow(Scolor),title('原始图像')

输出:

SETP2:图像的灰度化:

彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。

程序:

输出:

原始图像

1 2 3 %将彩色图像转换为黑白并显示

Sgray = rgb2gray(Scolor);%rgb2gray 转换成灰度图

subplot(3,4,2);imshow(Sgray),title('原始黑白图像');

STEP3:对原始图像进行开操作得到图像背景图像:程序:

1 2 3 4 %对原始图像进行开操作得到图像背景图像:

s=strel('disk',13);%strei函数

Bgray=imopen(Sgray,s);%打开sgray s图像

subplot(3,4,3);imshow(Bgray);title('背景图像');%输出背景图像

输出:

原始黑白图像

STEP4: 灰度图像与背景图像作减法,对图像进行增强处理: 程序:

1 2 3 %灰度图像与背景图像作减法,对图像进行增强处理:

Egray=imsubtract(Sgray,Bgray);%两幅图相减

subplot(3,4,4);imshow(Egray);title(

'增强黑白图像');

%输出黑白图像

输出:

背景图像

增强黑白图像

STEP5: 取得最佳阈值,将图像二值化:

二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。

程序:

1 2 3 4 5 6 7 %二值化处理

fmax1=double(max(max(Egray)));%egray的最大值并输出双精度型fmin1=double(min(min(Egray)));%egray的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值

bw22=im2bw(Egray,level);%转换图像为二进制图像

bw2=double(bw22);

figure,imshow(bw2);title('图像二值化');%得到二值图像

输出:

STEP6:边缘检测:

两个具有不同灰度值的相邻区域之间总存在边缘,边缘就是灰度值不连续的结果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比在这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点,这样通过

图像二值化

找图像强度的二阶导数的零交叉点就能找到精确边缘点。程序:

1 2 3 %边缘检测

grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界

subplot(3,4,6);imshow(grd);title('图像边缘提取');%输出图像边缘

输出:

STEP7:对得到图像作开操作进行滤波:

数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理问题。腐蚀是一种消除边界点的过程,结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点;膨胀是将与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大,孔洞缩小,可填补目标物体中的空洞,形成连通域。先腐蚀后膨胀的过程称为开运算,它具有消除细小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。

程序:

1 2 3 4 5 6 7 8 %对得到图像作开操作进行滤波

bg1=imclose(grd,strel('rectangle'

,[5,25]));%取矩形框的闭运算subplot(3,4,7);imshow(bg1);title('图像闭运算[5,25]');%输出闭运算的图像

bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算subplot(3,4,8);imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像

bg2=imopen(bg3,strel('rectangle',[11,24]));%取矩形框的开运算

图像边缘提取

9 subplot(3,4,9);imshow(bg2);title('图像开运算[11,24]');%输出开运算的图像

bg4=imsubtract(bg3,bg2);%两幅图相减

subplot(3,4,10);imshow(bg4);title('增强车标图像');%输出增强车标图像

输出:

STEP8:进行图像重构。小波图像分解,消除车标下方白色图案,图像重构,只保留车标二值化图像。

程序:

1

2 3 4 %图像重构,只保留车标二指化数据

bg5=imreconstruct(imerode(bg4,strel('disk',5)),bg4);

subplot(3,4,11);imshow(bg5);title('

车标二值化图像');%输出车标二值化图像

输出:

图像闭运算[5,25]图像开运算[5,19]

图像开运算[11,24]增强车标图像

STEP9:保存二值化图像中车标坐标位置:程序:

1 2 3 4 5 6 7 %保存白色车标坐标信息

[x0,y0]=find(bg6==1);%找出二值图片中白色的点

pos=[x0';y0'];%把对应白色点的坐标存放到POS中,第一行对应第i个坐标的x,第二行对应第i个坐标的y

xmax=max(pos(1,:));

xmin=min(pos(1,:));

ymax=max(pos(2,:));

ymin=min(pos(2,:));

STEP10:根据车标位置,在原图上标示出车标:程序:

1 2 3 4 5 6 7 8 y=xmin;x=ymin;,%起始坐标(颠倒的)

w=ymax-ymin;h=xmax-xmin;

%w为宽 h为长

initstate = [x y w h];

subplot(3,4,12);imshow('1.jpg'),title('车标标识效果图'); rectangle('Position',initstate,'LineWidth',1,'EdgeColor','r'); figure,imshow('1.jpg'),title('车标标识效果图');

rectangle('Position',initstate,'LineWidth',1,'EdgeColor','r');

输出:

《MATLAB程序设计与应用(刘卫国)》(第二版) 答案

《MATLAB程序设计与应用(刘卫国)》(第二版)实验一MATLAB运算基础 1.(1) z1=2*sin(pi*85/180)/(1+exp(2)) (2)x=[2,1+2i;-0.45,5]; z2=log(x+sqrt(1+x.^2))/2 (3)a=-3.0:0.1:3.0; z3=0.5*(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)+log((0.3+a)/2) (4)t=0:0.5:2.5; z4=(t>=0&t<1).*t.^2+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2*t+1) 2. A=[12,34,-4;34,7,87;3,65,7]; B=[1,3,-1;2,0,3;3,-2,7]; (1)a=A+6*B b=A-B+eye(size(A)) %I=eye(size(A)) (2)c=A*B d=A.*B (3)e=A^3 f=A.^3 (4)g=A/B h=B\A (5)m=[A,B] n=[A([1,3],:);B^2] 3. A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25]; B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; (1)C=A*B (2)D=C(3:end,2:end) 4.(1) a=100:999; b=rem(a,21)==0; c=find(b); d=length(c) (2)ch='Just as Bianhaiman said,Xiehong is ...'; e=find(ch>='A'&ch<='Z'); ch(e)=[] 实验二 MATLAB矩阵分析与处理 1.E=eye(3);

MATLAB 语言程序设计基础(2)

%第六章微分方程问题的解法 % 微分方程的解析解方法 % 常微分方程问题的数值解法 % 微分方程问题算法概述 % 四阶定步长Runge-Kutta算法及MATLAB 实现 % 一阶微分方程组的数值解 % 微分方程转换 % 特殊微分方程的数值解 % 边值问题的计算机求解 % 偏微分方程的解 % 6.1 微分方程的解析解方法 % y=dsolve(f1, f2, …, fm ,'x') % syms t; u=exp(-5*t)*cos(2*t+1)+5; % uu=5*diff(u,t,2)+4*diff(u,t)+2*u % syms t y; % y=dsolve(['D4y+10*D3y+35*D2y+50*Dy+24*y='... % '87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1)+10'],'y(0)=3','Dy(0)=2','D2y(0)=0','D3y(0)=0') % [x,y]=dsolve('D2x+2*Dx=x+2*y-exp(-t)',... % 'Dy=4*x+3*y+4*exp(-t)') % syms t x; % x=dsolve('Dx=x*(1-x^2)+1') % Warning: Explicit solution could not be found; implicit solution returned. % > In D:\MATLAB6p5\toolbox\symbolic\dsolve.m at line 292 % x = % t-Int(1/(a-a^3+1),a=``..x)+C1=0 % 故只有部分非线性微分方程有解析解。 % 6.2 微分方程问题的数值解法 % 6.2.1 微方程问题算法概述 %Euler算法% %function [outx,outy]=MyEuler(fun,x0,xt,y0,PointNum) % fun 表示f(x,y); x0,xt:自变量的初值和终值; % y0:函数在x0处的值,其可以为向量形式; % PointNum表示自变量在[x0,xt]上取的点数 % if nargin<5 |PointNum<=0 %PointNum 默认值为100 % PointNum=100; % end % if nargin<4 % y0默认值为0

汇编语言程序设计

汇编语言基础《汇编语言程序设计》第01章在线测试 A B C D 、微机中每个存储单元具有一个地址,其中存放一个____量。 A B C D 、设段地址为5788H,该字节的物理地址_____。 A B C D 、汇编语言源程序中,每个语句由项组成,不影响语句功能的是_____。 A B C D 、下列标号不合法的是_____。 A B C D

B、生成的代码序列短小 C、运行速度快 D、编程容易 E、便于移植 2、8086段寄存器有_______。 A、IP B、DS C、CS D、ES E、SS 3、使用MASM 6.x版本的“ML /Fl eg101.asm”命令,如果源程序eg101.asm没有语法错误,则将生成_________文件。 A、目标代码文件 B、可执行文件 C、列表文件 D、调试文件 E、库文件 4、汇编语言中,______可以作为有效的名字,如标号、变量名等。 A、0fffh B、var00 C、loop1 D、test E、add 5、汇编语言中,程序员不能将______作为用户标识符。 A、DS

正确错误、有效地址是指存储器操作数的物理地址。 正确错误、采用汇编语言书写的一个源程序文件,需要使用汇编程序,例如MASM 正确错误 按逻辑段组织程序,需要执行的指令应该在代码段中。 正确错误、使用简化段定义源程序格式,必须具有语句,且位于所有简化段定义语句之前。 正确错误 《汇编语言程序设计》第02章在线测试 A B C D

2、伪指令DW定义的是______量的变量。 A、字节 B、字 C、双字 D、4字 3、将变量var定义如下,“var db 26h, 4ah”,欲以字属性存取该变量值,应采用______var。 A、offset B、byte ptr C、word ptr D、seg 4、语句“xyz db ˊABˊ, ˊCDˊ, ˊEˊ,ˊFˊ”汇编后占用的存储空间是______个字节。 A、4 B、5 C、6 D、8 5、在伪指令语句“number dw 1234h”中的number 项称为______。 A、标号 B、操作符 C、名字 D、操作数 第二题、多项选择题(每题2分,5道题共10分) 1、如下________寻址方式的操作数来自主存储器。 A、立即数寻址 B、寄存器寻址 C、直接寻址 D、寄存器相对寻址 E、寄存器间接寻址 2、“mov [bx+10h],al”指令的两个操作数采用的寻址方式有_______。 A、寄存器间接 B、寄存器 C、寄存器相对 D、基址变址 E、立即数

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ?? ????++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g)

刘卫国版MATLAB程序设计与应用课后实验六八九

实验六 高层绘图操作 %第一题: 程序代码如下: x=linspace(0,2*pi,101); y=(0.5+3*sin(x)./(1+x.^2)).*cos(x); plot(x,y) 01234567 -1 -0.5 0.5 1 1.5 %第二题: %(1) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,'b-',x,y2,'r:',x,y3,'y--'); text(4,16,'\leftarrow y1=x^2'); text(6*pi/4,-1,'\downarrow y2=cos(2*x)'); text(-1.5*pi,-2.25*pi*pi,'\uparrow y3=y1*y2');

-8 -6 -4 -2 2 4 6 8 -30-20 -10 10 20 30 40 %(2) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; subplot(1,3,1);%分区 plot(x,y1); title('y1=x^2');%设置标题 subplot(1,3,2); plot(x,y2); title('y2=cos(2*x)'); subplot(1,3,3); plot(x,y3); title('y3=x^2*cos(2*x)');

-10 10 0510 15202530 35 40y1=x 2 -10 10 -1-0.8 -0.6 -0.4-0.200.20.4 0.6 0.8 1y2=cos(2*x) -10 10 -30-20 -10 10 20 30 40 y3=x 2*cos(2*x) %(3) 程序代码如下: x=linspace(-2*pi,2*pi,20); y1=x.^2; subplot(2,2,1);%分区 bar(x,y1); title('y1=x^2的条形图');%设置标题 subplot(2,2,2); stairs(x,y1); title('y1=x^2的阶梯图'); subplot(2,2,3); stem(x,y1); title('y1=x^2的杆图'); subplot(2,2,4); fill(x,y1,'r');%如果少了'r'则会出错 title('y1=x^2的填充图'); %其他的函数照样做。

Matlab语言程序设计

MATLAB 语言程序设计 1、应用题(20 分) 某工厂生产A和B两种产品,它们需要经过三种设备的加工,工时如表1所列。设备一、二、三每天可使用的时间分别不超过12、10和8小时。产品A和B的利润随市场的需求有所波动,如果预测未来某个时期内A和B的利润分别为4000元/吨和3000元/吨,问每天应安排产品A、B各多少吨,才能使工厂获利最大? 表 1 生产产品工时表 产品设备一设备二设备三 A/(小时/吨) 3 3 4 B/(小时/吨) 4 3 2 设备每天最多可工作时数/小时12 10 8 请写出具体解决方案,并编写该解决方案的具体MATLAB程序代码。 假设每天应安排生产产品A和B分别为和吨,依题意可建数学模型如下: max z=4000x 1+ 3000x2 3x1+ 4x2≤12 3x1+ 3x2≤10 4x1+ 2x2≤8 x1≥0, x2≥0 首先将目标函数转换为标准形式:min z=-4000-3000 M文件如下: f = [-4000;-3000]; A = [3 4;3 3;4 2]; b = [12;10;8]; lb = zeros(2,1); [x,fval] = linprog(f,A,b,[],[],lb) 结果如下图1所示: 图1

2、结合MATLAB 图像的读写知识,请你写出具体MATLAB 图像读写方法,结合实例,给出图像读写步骤。(20分) 读写方法: imfinfo(FileNAme) %从FileNAme中获取或显示图像文件的特征数据 [X,cmap]=imread(FileNAme) %读取变址图像的数据矩阵与伴随色图,并分别送给X 和cmap X=imread(FileNAme) %从FileNAme中读取强度图像或真彩图像的数据矩阵并送给X imwrite(X,cmap,FileName,Parameter,Value) %将变址图像写入文件 imwrite(X ,FileName,Parameter,Value)%将强度图像或真彩图像写入文件 [例2-1] M文件如下: I=imread('m2.png'); imwrite(I,'m2.tif'); [X,cmap]=imread('m2.tif'); image(X); colormap(cmap); axis image off; 结果如下图2所示: 图2 3、结合课本第四章所提供的18种绘图方法,请实现其中8种绘图,提供程序代码及所绘制的图形。(30分)

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言程序设计

汇编语言程序设计 一、选择题 (共72题) 1、 用于指针及变址寄存器的有()。 A、 AX,BX,CX,DX B、 SP,BP,IP C、 CS,DS,SS D、 PSW 考生答案:B 2、 完成把汇编语言源程序模块转换为目标模块的程序是()。 A、 编辑程序 B、 汇编程序 C、 连接程序 D、 调试程序 考生答案:B 3、 指令JMP FAR PTR DONE中的寻址方式属于()。 A、 段内转移直接寻址 B、 段内转移间接寻址 C、 段间转移直接寻址 D、 段间转移间接寻址 考生答案:C 4、 对于下列程序段: AGAIN:MOV AL,[SI]

MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用()指令完成同样的功能。 A、 REP MOVSB B、 REP LODSB C、 REP STOSB D、 REPE SCASB 考生答案:A 5、 在程序执行过程中,IP寄存器中始终保存的是()。 A、 上一条指令的首地址 B、 下一条指令的首地址 C、 正在执行指令的首地址 D、 需计算有效地址后才能确定地址 考生答案:B 6、 在汇编语言程序的开发过程中使用宏功能的顺序是()。 A、 宏定义,宏调用 B、 宏定义,宏展开 C、 宏定义,宏调用,宏展开 D、 宏定义,宏展开,宏调用 考生答案:C 7、 CPU要访问的某一存储单元的实际地址称()。 A、 段地址

偏移地址 C、 物理地址 D、 逻辑地址 考生答案:C 8、 AND、OR、XOR、NOT为四条逻辑运算指令,下面解释正确的是()。 A、 指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、 指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、 指令AND AX,OFH执行后,分离出AL低四位 D、 NOT AX,执行后,将AX清0 考生答案:C 9、 完成对CL寄存器的内容乘以2的正确操作是()。 A、 ROL CL,1 B、 MUL 2 C、 SHL CL,1 D、 SHR CL,1 考生答案:C 10、 检查两个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP A L,BL”指令后应跟的分支指令是()。 A、 JE LOP1 B、 JAE LOP1 C、 JC LOP1 D、 JGE LOP1 考生答案:B 11、 已知变量VAR为字型,则TYPEVAR=()。

matlab程序设计与应用第二版习题答案

matlab程序设计与应用第二版习题答案【篇一:matlab程序设计与应用(第二版)实验答案】 %实验一 matlab运算基础 %第1题 %(1) z1=2*sin(85*pi/180)/(1+exp(2)) %(2) x=[2,1+2i;-0.45,5]; z2=0.5*log(x+sqrt(1+x.^2)) %(3) a=-3.0:0.1:3.0; z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2) %(4) t=0:0.5:2.5; z4=t.^2.*(t=0t1)+(t.^2-1).*(t=1t2)+(t.^2-2*t+1).*(t=2t3) %第2题 a=[12 34 -4;34 7 87;3 65 7]; b=[1 3 -1;2 0 3;3 -2 7]; a+6*b a-b+eye(size(a)) a*b a.*b a^3 a.^3 a/b b\a [a,b] [a([1,3],:);b^2] %第3题 a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] b=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] c=a*b f=size(c) d=c(f(1)-2:f(1),f(2)-1:f(2)) whos %第4题 %(1):

a=100:999; b=rem(a,21); c=length(find(b==0)) %(2): a=lsdhksdlkklsdkl; k=find(a=aa=z); a(k)=[] %实验二 matlab矩阵分析与处理 %第1题 e=eye(3); r=rand(3,2); o=zeros(2,3); s=diag([2,3]); a=[e,r;o,s]; a^2 b=[e,(r+r*s);o,s^2] %第2题 h=hilb(5) p=pascal(5) hh=det(h) hp=det(p) th=cond(h) tp=cond(p) %第3题 a=fix(10*rand(5)) h=det(a) trace=trace(a) rank=rank(a) norm=norm(a) %第4题 a=[-29,6,18;20,5,12;-8,8,5] [v,d]=eig(a) %数学意义略 %第5题方法一 %(1): a=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b=[0.95,0.67,0.52]; x=inv(a)*b %(2):

05级通信工程、电子信息工程《MATLAB语言程序设计》考试卷

安徽农业大学2006―2007学年第二学期 《MATLAB 语言程序设计》试卷(A 卷) 考试形式: 闭卷笔试,2小时 适用专业: 05级通信工程、电子信息工程 一、填空题(本题满分30分,每空3分) 1. 设有程序 A=[1,2,3,4;4,3,2,1;1, -2 ,1, -2];B=[3,1,-1;0,4,2];A1=A(:,[1 3]); M=size(A1)+ length(B(:,2)) 将下列命令的运行结果填在横线上 M= ;A1+B' = . 2. A=[1,2,3,4;2,3,4,5;3,4,5,6]; A1=sum(A<4,2);A([2,3],:)=[],A2=A A1= ; A2= ; 3.P=[1,2,3,4;3,0,1,2];max(P)= ;mean(P,2)= 院: 专业班级: 姓名: 学号: 装 订 线

二、(本题满分12分)试编写计算程序 V; 与特征向量 U 的特征值 B 2 A 求 (4). E; 5 B A 2B BX 解矩阵 . (3) ); A B) (B(A R R 的秩 A (2). |; B) 2 B)(A (A | D (1). , 6 2 1 5 7 2 , 2 1 5 1 2 3 3 2 1 1 1 + + = + = + - = ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? = - - T T T B A 方程 设

三、(本题满分8分) 的程序组写出求解超定线性方程?????? ?=++-=++=--=++1 21212:321 321321 321x x x x x x x x x x x x 四、(本题满分16分)运用符号运算功能写出下列各题Matlab 程序 解求方程03.12=-x e x Adx dx A d x wx x x xe A x ??? ????=-1 022,,cos )sin(sin .2并计算 生成符号矩阵

汇编语言程序设计(第四版)第3章【课后答案】

汇编语言程序设计第四版 【课后习题答案】--囮裑為檤 第3章汇编语言程序格式 〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用? 〔解答〕 伪指令语句与硬指令语句的本质区别是能不能产生CPU动作; 伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。 〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成? 〔解答〕 为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符; 汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能以数字开头。 〔习题3.3〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。 〔解答 保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。如定义字节数和字符串的DB就是伪指令助记符。 〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成? 〔解答〕 汇编语句有执行性语句和说明性语句; 执行性语句由标号、硬指令助记符、操作数和注释四部分组成; 说明性语句由名字、伪指令助记符、参数和注释四部分组成 〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 〔解答〕 ⒈编辑文本编辑程序汇编语言源程序.asm ⒉汇编汇编程序目标模块文件.obj ⒊连接连接程序可执行文件.exe或.com

⒋调试调试程序应用程序 〔习题3.6〕区分下列概念: (1)变量和标号 (2)数值表达式和地址表达式 (3)符号常量和字符串常量 〔解答〕 (1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。 (2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。 (3)在程序中,为了使常量更便于使用和阅读,经常将一些常量用常量定义语句定义为符号常量,被一对双引号括起来的若干个字符组成的字符序列被称为字符串常量。 〔习题3.7〕假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的错误原因。 (1)mov byte ptr [bx],1000 (2)mov bx,offset myword[si] (3)cmp mybyte1,mybyte2 (4)mov al,mybyte1+mybyte2 (5)sub al,myword (6)jnz myword 〔解答〕 (1)1000超出了一个字节范围 (2)寄存器的值只有程序执行时才能确定,而offset是汇编过程计算的偏移地址,故无法确定,改为lea bx,myword[si] (3)两个都是存储单元,指令不允许 (4)变量值只有执行时才确定,汇编过程不能计算 (5)字节量AL与字量myword,类型不匹配 (6)Jcc指令只有相对寻址方式,不支持间接寻址方式 〔习题3.8〕OPR1是一个常量,问下列语句中两个AND操作有什么区别? AND AL,OPR1 AND 0feh 〔解答〕

汇编语言程序设计

汇编语言程序设计 实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验班级 学号 姓名 日期2017年10月26号 成绩 评阅人 软件学院

一、实验目的与意义 理解并熟练掌握汇编语言程序设计过程中的编辑、汇编、链接和调试等各个步骤,提高对汇编课程内容的理解和汇编语言的掌握,通过上机练习加深对课程内容的理解和掌握。通过汇编语言编制的程序上机调试、运行检验程序设计是否正确。熟悉和掌握编辑、汇编、连接和调试四个实用程序的使用方法,掌握调试程序中的几个常用命令的使用方法。熟悉其基本的指令操作,debug调试操作命令以及分支结构、顺序结构和循环结构的程序设计。 二、实验环境 操作系统:Microsoft Windows8 集成环境:Masm for Windows 上机地点:信息楼B405教室 三、实验的预习内容 预习的主要内容: 1. 使用DEBUG命令的方法; 2. 熟悉掌握从理论上定义数据的类型(即DB,DW,DD,); 3. 分支结构和顺序结构的步骤以及相关的指令; 4. 常用的标志位状态及相应的作用; 实验思路: 在对题目进行分析后,分析出解题方法,并做出与实验思路相对应的程序框图。依照程序框图的内容输入相对应的代码,最终在调试代码后,发现并解决一系列的汇编语言错误。进一步优化算法。实验之前必须了解十进制、十六进制和ASCII码之间的转换。预习查表法相关命令,掌握顺序程序的结构,从键盘输入数据的命令及显示到屏幕上的命令。 实验一: 题目1:将程序编辑、汇编、连接并通过集成环境中的debug调试,观察运行结果;用E命令修改指定地址的数据,再用G命令执行程序查看变化,用A 命令将加法指令修改成减法指令,再将其编译运行,查看寄存器值变化的异同。 题目2:分别用DB、DW和DD数据段9H,0FAH,41H,27H,编译链接之后生成exe文件,再用debug的r命令找到数据段地址,用d命令指定数据段地址,观察汇编后在机器内部对应的存储情况。 实验二: 先设置数据段地址和堆栈段地址;设置堆栈段指针;读取一个字符然后存储在AL中;用BX来存储AL中字符对应的数值;将BX中的值作为偏移地址;并在数据段中查找对应字符串;最终输出结果结束程序。 实验三: 先初始化数据段地址与堆栈段地址;设置堆栈段指针;然后将数据段中的data1放入AL中;读取数据段中的data2并判断data2是否大于0;然后读取数

matlab程序设计实例

MATLAB 程序设计方法及若干程序实例 樊双喜 (河南大学数学与 信息科学学院开封475004) 摘要本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行编程训练并掌握一些有关MATLAB 程序设计方面的基本概念、基本方法以及某些问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材料,并起到一定的指导和激励作用,进而为MATLAB 编程入门打下好的基础. 关键字算法设计;程序调试与测试;程序优化;循环控制 1 算法与程序 1.1 算法与程序的关系算法被称为程序的灵魂,因此在介绍程序之前应先了 解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法逐步翻译成相应的程序语言,即计算机可识别的语言. 所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程则是算法的具体体现. 1.2MATLAB 语言的特点 MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富

新版汇编语言程序设计习题答案(钱晓捷主编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

《MATLAB语言程序设计》练习题1(08通信)

《MATLAB语言程序设计》练习题1(2010.5) 一、填空题 1.设有程序 A=[1,2,3,4;6,-5,6,3];B=[2,4,5,7];A1=A(:,[1 3 4]);A2=A(1,[2,3]). 将下列命令的运行结果填在横线上 size(A)= ;A(1,: ).*B= ;length(B)= ; A1= ; A2= ;A+3= ;B.^2= 2. A=[1,2,3,4;6,-5,6,3];B=[-2,4,-6,7,9];A1=(A<3);A2=all(A(:,1)<5);A3=any(A(2,:)<10); A4=find(abs(B)<3| abs(B)>7); A5=find(abs(B)<7& abs(B)>3) A1= ; A2= ; A3= ; A4= ;A5= .

; ).4(; 2(3).);BA R(A R 2).A (|;)(|).1(,21 4154 101 ,32 1214 1531 1 1 V U A E B A B AX AB D B A :、T T 与特征向量 的特征值 求解矩阵方程 的秩设题试编写程序计算下列各二+=+==???? ? ? ?--=????? ? ?-=--- ??? ?? ?? ??=+-=++-=++=-+=++???????=-++-=-++=-++=+++?? ?=-++=+++3 512332232.31 23322352:.2221 432:.13213213213213214321 43214321432143214321x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 、超定方程组 恰定方程组 欠定方程组 程组的程序 写出求解下列各线性方三 .)(,cos 3)sin()sin(cos 2sin )(.3;)(,,1 sin )ln(.2;02.1: ,4 321 2 2 2 2 3 变换的计算并计算生成符号矩阵 的根求方程下列各题运用符号运算功能计算四Laplace t A wt e wt t t te t t t te t t A dx x A dx A d x x e s x x A x x 、ut t t x ? ??? ? ??? ? ?=??? ? ??? ?+==+---? 的解 函数求解微分方程用1)0(')0(,sin '2".4===++x x t x x x dsolve (1) 若.2 c bt at y t y ++=的经验公式为 与试编写程序计算出上式中的a 、b 、c;

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

MATLAB 语言程序设计基础(1)

%第二章MATLAB 语言程序设计基础% % MATLAB 基本命令简介 % MATLAB 程序设计语言基础 % 基本数学运算 % MATLAB语言流程控制 % MATLAB 函数的编写 % 二维图形绘制 % 三维图形绘制 % 二维图形 % 基本平面 % plot % fplot%f(x) %fplot('tanh',[-2 2]) % loglog%双对数图形 % semilogx%x轴对数图形 % semilogy %zoom %meshgrid

% 特殊平面 %polar %bar %barh %compass %comet %errorbar %feather %hist 二维直方图%histc 直方图记数%rose 角度直方图%stairs %stem 柄形图 %stem3 %pie 饼形图 % 注释命令 % grid % gtext % text % legend % title

% xlabel,ylabel % 三维图形 % % 三维曲线,面填色命令 % comet3 三维彗星 % fill3 % 三维图形等高线 %clabel 二维等高线图中添加高度标签 % [x,y] = meshgrid(-2:.2:2); % z = x.*y.*exp(-x.^2-y.^2); % [C,h] = contour(x,y,z); % clabel(C,h); %contour %contourc 低级等高线图形计算命令。计算等高线矩阵c %contour3 三维空间等高线图 %contourf 填充二维等高线图 %contour,contour3和contourf %pie3

大学毕业设计-MATLAB语言程序设计

MATLAB语言程序设计 系别:电子电气工程系 班级:08级自动化班 姓名:XXX 学号:

1.编写一个求圆的面积的函数文件。 >> f(1) s = 3.1416 >> f(2) s = 12.5664 通过此题掌握了独立文件与函数文件的区别。 2.三次抛物线的方程为:y=a*x^3+b*x^2+c*x 试探讨参数a,b和c对其图形的影响。 >> clear all; >> subplot(1,3,1) >> fplot('(-2:2)*x.^3+x.^2+x',[-2 2]) %绘制变量a=-2,-1,0,1,2时的图形 >> grid,axis('equal'),axis([-2 2 -4 4]) %显示网格,纵横坐标轴保持一致图 >> %显示区间 >> subplot(1,3,2) >> fplot('x.^3+(-2:2)x.^2+x',[-2 2]) %绘制变量b=-2,-1,0,1,2时的图形 >> fplot('x.^3+(-2:2)*x.^2+x',[-2 2]) %绘制变量b=-2,-1,0,1,2时的图形 >> grid,axis('equal'),axis([-2 2 -4 4]) >> subplot(1,3,3) >> fplot('x.^3+x.^2+(-2:2)*x',[-2 2]) %绘制变量c=-2,-1,0,1,2时的图形 >> grid,axis('equal'),axis([-2 2 -4 4]) >> gtext('a=2'),gtext('a=-2'),gtext('a=0') %用gtext命令在其他两个子图上标注字符程序运行结果如下:

MATLAB程序设计与应用(第二版)

阅阅读读时时::请请选选择择““视视图图||文文档档结结构构图图””,,弹弹出出文文档档中中的的标标题题链链接接。。数学软件 MATLAB 程序设计与应用

第1章MATLAB系统环境 1.1 MATLAB概貌 1.2 MATLAB环境的准备 1.3 MATLAB操作界面 1.4 MATLAB帮助系统 自上世纪80年代以来,出现了科学计算语言,亦称数学软件。 MATLAB Mathematica Mathcad Maple LINDO LINGO 1.1 MATLAB概貌p3 MATLAB 是MATrix LABoratory(矩阵实验室)的缩写。 1984年由Math Works 公司推出,现已成为国际公认的优秀的工程应用开发环境,是影响最大,流行最广的科学计算语言。 1.1.1 MATLAB的发展

1. 从MATLAB 4.2c开始,每个版本增加了一个建造编号; 2. 例如MATLAB7.6的建造编号是R2008a。说明MATLAB7.6与MATLAB2008a是等同的; 3. 对于建造编号,正规化以后,每年出两个版本。一般来说。a是测试版,b是正式版。a是前半 年出,b是后半年出。 教材采用MATLAB7.0(R14,2004) 实验室采用MATLAB 7.8(R2009a,2009.3,汉化) 1.1.2 MATLAB的主要功能p4 ◆数值计算和符号计算功能 ◆绘图功能 ◆语言体系 ◆MATLAB工具箱 (1) 数值计算和符号计算功能 MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。 MATLAB先后和著名的符号计算语言Maple与MuPAD(从MATLAB 2008b开始使用MuPAD)相结合,使得MATLAB具有符号计算功能。 (2) 绘图功能 可以绘制二维和三维图形。 MATLAB提供了两个层次的绘图操作: ●对图形句柄进行的低层绘图操作; ●建立在低层绘图操作之上的高层绘图操作。 (3) 语言体系 MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。 MATLAB是解释性语言,不能脱离MATLAB环境而独立运行。 (4) MATLAB工具箱 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。 基本部分 构成MATLAB的核心内容,也是使用和构造工具箱的基础。 功能性工具箱 主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。 学科性工具箱 Control System Toolbox 控制系统工具箱 Signal Processing Toolbox 信号处理工具箱 Neural Network Toolbox 神经网络工具箱 Optimization Toolbox 最优化工具箱 Financial Toolbox 金融工具箱 Statistics Toolbox 统计学工具箱 开始→工具箱 MATLAB具备很强的开放性 除内部函数外,所有MATLAB基本文件和各工具箱文件都是可读、可改的源文件,用户可通过对源文件的修改或加入自己编写的文件去构成新的专用工具箱。

相关文档
最新文档