




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab6.5使用友好的工作平台和编程环境简单易用的程序语言强大的科学计算及数据处理功能丰富的图形处理功能应用广泛的模块集和工具箱模块化的设计和系统的仿真实用的程序接口和发布平台第1章 Matlab6.5使用方法1Matlab6.5简介1.1 21世纪的科学计算语言功能强大 数值计算、符号运算、图形可视化语言简单扩充能力强、可开发性好 编程容易、效率高1.2 Matlab6.5的新特点开发环境 数值处理程序及数据结构 图形处理用户图形界面应用程序接口1.3 Matlab网上资源 HYPERLINK HYPERLINK 2Matlab6.5桌面平台Matlab主窗口命令窗口历史窗口当前目录窗
2、口发明说明书窗口工作间管理窗口3Matlab6.5帮助系统联机帮助系统选中Help下拉菜单的前四项中任何一项;在命令窗口中执行Helpwin、helpdesk、doc;直接按主窗口的?按钮.命令窗口查询帮助 help系列-help、help+函数(类)名、helpwin、helpdesk;lookfor函数;其他帮助命令exist变量检验函数;what-目录中文件列表;who-内存变量列表;whos-内存变量详细信息;which-确定文件位置。联机演示系统1基本介绍窗口 intro2演示界面help-demosdemo常用命令和技巧1一些通用命令cd 显示或改变工作目录dir, ls 显示目录
3、文件type 显示文件内容clear 清理内存变量clf 清除图形窗口pack 收集内存碎片、扩大内存空间clc 清除工作窗echo 工作窗信息显示开关hold 图形保持开关disp 显示变量或文字内容path 显示搜索目录save 保存内存变量到指定文件load 加载指定文件的变量diary 日志文件命令quit 退出Matlab! 调用dos命令2 标点: 多种应用功能; 区分行,取消行显示等, 区分列,函数参数分隔符等() 指定运算过程中的先后次序等 矩阵定义的标志 用于构成单元数组等. 小数点及域访问等 续行符% 注释标记= 赋值标记 字符串的标志符等Help 程序(主题)名 help
4、 sinh SINH Hyperbolic sine. SINH(X) is the hyperbolic sine of the elements of X. Overloaded methods help sym/sinh.mlookfor complex显示who %显示当前工作区中的所有变量名whos %显示当前工作区中的所有变量%名,变量的大小,字节数和类型。disp(x) %显示x的内容,矩阵或字符串清除clear (变量名)存储save (文件名)调出 load (文件名) saveSaving to: matlab.mat loadLoading from: matlab.ma
5、t save temp-将当前系统中的所有变量存入temp.mat; save temp x-仅存入x变量到temp.mat; save temp x y z-仅存入x y z变量到temp.mat; load temp-重新从temp.mat中提出变量。搜索path %显示目前的搜索路径,可以用File菜单中的Set Path观察和修改路径管理what 返回目前目录下的M,MAT,MEX文件列表dir、 ls 列出目前目录下的所有文件cd path 改变目前目录为pathpwd、 cd、 chdir 显示目前的工作目录 退出quit第2章 数值计算功能2.1 Matlab的数据类型1. 变量
6、与表达式Matlab命令的通常形式 变量=表达式 A=1,3.0,5.6,sin(2.)A = 1.0000 3.0000 5.6000 0.9093 a=1 3.0 5.6 sin(2.)a = 1.0000 3.0000 5.6000 0.9093 sin(pi/2)/3ans =3333 whos Name Size Bytes Class A 1x4 32 double array a 1x4 32 double array ans 1x1 8 double arrayGrand total is 9 elements using 70 bytes2预定义变量-常量系统的特殊常量特殊变
7、量 取值pi eps 计算机的最小正数flops 浮点运算次数i,j i=j=Inf 无穷大NaN 不定量Realmin 最小的正浮点数 2(-1022)Realmax 最大的浮点数 2(1023) z1=3+4iz1 = 3.0000 + 4.0000i z1=3+4jz1 = 3.0000 + 4.0000i3.显示格式计算以双精度计算;数值的有效范围为10e-30810e308;显示可以不同的显示格式显示;缺省情况为短格式(short)显示若数据为整数,则以整型表示;若为实数,则保留小数点后4位的浮点数表示。 x=3.0 2x =2short x=4/3 1.2345e-6x =1.33
8、33 0.0000 format long x=4/3 1.2345e-6x = 1.33333333333333 0.00000123450000 format short e x=4/3 1.2345e-6x =3333e+000 1.2345e-006 format + x=4/3 1.2345e-6x =+shortlonghexbank+short elong eshort eshort glong grational4. 字符串-所有字符串用单引号设定后输入或赋值 s=matrix laboratorys =matrix laboratory -字符串的每个字符(包括空格)均为字符
9、数组的一个元素size(s) %size命令查看字符数组的维数ans = 1 17 -字符串和字符数组(或矩阵)基本上等价 s(3)ans =t s2=matlabs2 =matlab-字符数组的生成 s3=char(s,y,m,b,o,l,i,c); s3ans =symbolic-字符串和数组之间的转换A. 字符串转换为数值代码 double(s3)ans = 115 121 109 98 111 108 105 99B. 字符数组转换为字符串 cellstr(s3)ans = s y m b o l i cC. 数值数组和字符串之间的转换-num2str 数字转换为字符串-int2str
10、 整数转换为字符串-mat2str 矩阵转换为字符串-str2num 转换字符串为数字-sprintf 将格式数据写为字符串-sscanf 在格式控制下读字符串 a=1:5; b=num2str(a); a*2ans = 2 4 6 8 10 b*2ans = Columns 1 through 11 98 64 64 100 64 64 102 64 64 104 64 Columns 12 through 13 64 106 str2num(b)*2ans = 2 4 6 8 10D. 字符串操作-strcat 链结串-strvcat 垂直链结串-strcmp 比较串-strncmp 比较
11、串的前n个字符-findstr 在其他串中寻找此串-strjust 证明字符数组-strmatch 查找可能匹配的字符串-strrep 以其他串代替此串-strtok 寻找串中记号-upper 转换为大写-lower 转换为小写-blanks 生成空串-deblank 移去串内空串 E. 执行字符串-函数eval实现n=4;t=1/(i+j-1);a=zeros(n);for i=1:nfor j=1:na(i,j)=eval(t);endendaa = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500
12、0.2000 0.1667 0.2500 0.2000 0.1667 0.1429 d=cd; eval(d)C:MATLAB6p1workF. 一些基本数字转换函数-hex2num 十六进制转换为双精度数-hex2dec 十六进制转换为十进制整数-dec2hex 十进制整数转换为十六进制串-bin2dec 二进制转换为十进制整数-dec2bin 十进制整数转换为二进制串-base2dec 转换B底字符串为十进制整数-dec2base 转换十进制整数为B底串-strings strings函数的帮助5 矩阵6 单元型变量一种以任意形式的数组为元素的多维数组-定义(1)赋值语句直接定义(2)由c
13、ell函数预先分配存储空间,再对单元元素逐个赋值 A=1, 2; 3, 4; B=1:4, A, abcdB = 1x4 double 2x2 double abcd c1,1=1:4; c1,2=A; c1,3=abcd; cc = 1x4 double 2x2 double abcd c2ans = 1 2 3 4 c(2)ans = 2x2 double注:1)单元型变量的元素不是以指针的方式保存。改变其元素原变量矩阵A的值不等于改变变量B的第2个元素的值。2)单元型变量自身可以嵌套。 D=1:4,A,BD = 1x4 double 2x2 double 1x3 cell D33ans
14、=abcd A(1,2)=-10A = 1 -10 3 4 c2ans = 1 2 3 4-单元型变量的相关函数-cell 生成单元型变量-cellfun 对单元型变量中元素作用的函数-celldisp 显示单元型变量的内容-cellplot 图形显示单元型的内容-num2cell 数值数组转换为单元型变量-deal 输入输出处理 -cell2struct 单元型变量转换为结构型变量-struct2cell 结构型变量转换为单元型变量-iscell 判断是否为单元型变量 -reshape 改变单元数组的结构 cellfun(islogical, B)% 其他函数isreal, isempty,
15、 length, ndims等ans = 0 0 0 celldisp(B)B1 = 1 2 3 4B2 = 1 2 3 4B3 =abcd size(D)ans = 1 3 reshape(D,3,1)ans = 1x4 double 2x2 double 1x3 cell size(ans)ans = 3 17 结构型变量以指针方式传递数据,将不同数据类型组合在一起的数据类型。-定义(1)赋值语句直接定义,以指针操作符.连接结构变量名和属性名;(2)由struct函数定义 结构变量名=struct(元素名1, 元素值1,元素名2, 元素值2, ) A.a1=abcd; A.a2=1; A.
16、a3=1,2,3,4; AA = a1: abcd a2: 1 a3: 1 2 3 4 B=1,2;3,4; A(2).a1=efgh; A(2).a2=2; A(2).a3=B; AA = 1x2 struct array with fields: a1 a2 a3 A(1)ans = a1: abcd a2: 1 a3: 1 2 3 4 A(2)ans = a1: efgh a2: 2 a3: 2x2 double C=struct(c1,1,c2,B, c3,abcd)C = c1: 1 c2: 2x2 double c3: abcd C.c1=AC = c1: 1x2 struct c
17、2: 2x2 double c3: abcd C.c1(1).a1ans =abcd-结构型变量的相关函数-struct 创建或转换结构变量-findnames 得到结构型变量的属性名-getfield 得到结构型变量的属性值-setfield 设定结构型变量的属性值-rmfield 删除结构型变量的属性-isfield 判断是否为结构型变量的属性 -isstruct 判断是否为结构型变量 fieldnames(C)ans = c1 c2 c3 iscell(ans)ans = 1 D=getfield(C,c1)D = 1x2 struct array with fields: a1 a2
18、a3 C=setfield(C,c1,2)C = c1: 2 c2: 2x2 double c3: abcd C=rmfield(C,c1)C = c2: 2x2 double c3: abcd isfield(C,c2)ans = 1 isstruct(C)ans = 12.2 矩阵的基本运算I数和算术表达式90 0.0001 9.1234 1.6021e-20 5.02252e23数学运算符:+ - * / (右除) (左除) II数学函数基本三角函数sincosseccsctancot反三角函数asinacosasecacscatanacot双曲函数sinhcoshsechcschtan
19、hcoth反双曲函数asinhacoshasechacschatanhacoth指数和对数explogLog10sqrt复数运算absangleconjrealimag数值函数fixfloorceilroundrem整数函数lcmgcd x=5.1x = 5.1000 fix(x)ans =5 floor(x)ans =5 ceil(x)ans =6 round(x)ans =5 rem(5,3)ans =2 sin(1+2i)ans =+ 1.9596iIII.矩阵及其元素1.矩阵输入的基本方法 A=1 2 3A = 1 2 3 A=1 2 3;4 5 6;7 8 9A = 1 2 3 4
20、5 6 7 8 9 A=1, 2, 3;4,5,6;7, 8,9A = 1 2 3 4 5 6 7 8 9 A=1, 2, 34,5,67, 8,9A = 1 2 3 4 5 6 7 8 92矩阵元素的存取Matlab的矩阵元素可以为任何数值表达式。 x=-1.3 sqrt(3) (1+2+3)*4/5x = -1.3000 1.7321 4.8000 A=1+5i 2+6iA = 1.0000 + 5.0000i 2.0000 + 6.0000i A=1 2; 3 4+i*5 6;7 8A = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000
21、i 4.0000 + 8.0000iMatlab的矩阵元素的引用: x=A(1,2)x = 2.0000 + 6.0000iMatlab的矩阵的维数自动扩充: x=-1.3 sqrt(3) (1+2+3)*4/5x = -1.3000 1.7321 4.8000 x(5)=abs(x(1)x = -1.3000 17321 4.8000 0 1.3000 A=1 2;3 4A = 1 2 3 4 A(3,1)=-1A = 1 2 3 4-1 03.子矩阵的操作大的矩阵可以通过小的矩阵扩充得到: A=A;2 1A = 1 2 3 4 -1 0 2 1 A=A, 1 2 3 4A = 1 2 1
22、3 4 2 -1 0 3 2 1 4小的矩阵可以从大的矩阵抽取得到:A(:)A的所有元素;A(:,J)A的第J列所有元素;A(J:K)A(J),A(J+1),A(K);A(:,J:K)A(:,J),A(:,J+1),A(:,K);A(J,:)A的第J行所有元素;A(J:K,:)A(J,:),A(J+1,:),A(K.:);A = 1 2 1 3 4 2 -1 0 3 2 1 4 y=A(1:3,:)y = 1 2 1 3 4 2 -1 0 3 x=A(:,1:2)x = 1 2 3 4 -1 0 2 1 z=A(1:2,2:3)z = 2 1 4 24. “:”运算符的用法用来产生相同增量的向
23、量的方法: t=1:5t = 1 2 3 4 5 x=pi:-pi/3:0 x = 3.1416 2.0944 1.0472 0 x=(0.0:0.2:1.0);%表示转置 y=sin(x); %计算函数值 x y %组合出矩阵ans = 0 0 0.2000 0.1987 0.4000 0.3894 0.6000 0.5646 0.8000 0.7174 1.0000 0.84155生成特殊矩阵的函数 rand(1,3)ans = 0.9501 0.2311 0.6068 rand(3)ans = 0.4860 0.4565 0.4447 0.8913 0.0185 0.6154 0.762
24、1 0.8214 0.7919 eye(2,3)ans = 1 0 0 0 1 0 ones(3,2)ans = 1 1 1 1 1 1 randn(3,2) %标准正态分布ans = -0.4326 0.2877 -1.6656 -1.1465 0.1253 1.1909IV. 矩阵操作1矩阵转置 A=1,2,3;4,5,6A = 1 2 3 4 5 6 B=AB = 1 4 2 5 3 6 C=1+i,-i;2,1-iC = 1.0000 + 1.0000i 0 - 1.0000i 2.0000 1.0000 - 1.0000i D=C %转置共扼D = 1.0000 - 1.0000i
25、2.0000 0 + 1.0000i 1.0000 + 1.0000i2对角矩阵diag函数用来生成一个对角矩阵或提取一个矩阵的对角元素: diag(2:4)ans = 2 0 0 0 3 0 0 0 4 AA = 1 2 3 4 5 6 diag(A)ans = 1 53上/下三角矩阵 tril(A)ans = 1 0 0 4 5 0 triu(A)ans = 1 2 3 0 5 6 fliplr(A)ans = 3 2 1 6 5 4 flipud(A)ans = 4 5 6 1 2 3V.矩阵运算1加和减 AA = 1 2 3 4 5 6 B=1 4 7;2 5 6B = 1 4 7 2
26、 5 6 C=A+BC = 2 6 10 6 10 12 D=A-1.0D = 0 1 2 3 4 52乘法 AA = 1 2 3 4 5 6 Aans = 1 4 2 5 3 6 A*Aans = 14 32 32 773矩阵除法标量运算时:矩阵运算时:-inv(A)*B;-A*inv(B); A=1 2 3A = 1 2 3 B=1 2 -3; -2 5 6; 7 2 1B = 1 2 -3 -2 5 6 7 2 1 A/Bans = -0.1818 0.3636 0.2727 BAans = 0.2929 0.4444 0.06064. 矩阵乘方 BB = 1 2 -3 -2 5 6 7
27、 2 1 B3ans = 6 -6 114 258 309 150 -98 134 1185数组运算-向量或矩阵间对应元素的运算:.+ .- .* ./ . . x=1 2 3x = 1 2 3 y=4 5 6y = 4 5 6 z=x.*yz = 4 10 18 z1=x.yz1 = 1 32 729 z3=x.2z3 = 1 4 9 z4=2.xz4 = 2 4 8 1 2; 3 4./2 2; 2 2ans = 0.5000 1.0000 1.5000 2.0000 1 2; 3 4.2 2; 2 2ans = 2.0000 1.0000 0.6667 0.5000常见数值问题介绍线性方
28、程组求解A*x=bA为m*m阶矩阵, X和b为m阶向量。 A=1,2,3;4,5,6;7,8,0; b=366;804;351; det(A)ans = 27 x=inv(A)*bx = 25.0000 22.0000 99.0000 x=Abx = 25.0000 22.0000 99.0000广义情况:方程数与未知量数目不等时,线性方程组通常不存在唯一解,但最小二乘解x*是存在唯一。 A=1 2 3; 4 5 6; 7 8 0; 2 5 8; b=366 804 351 514; x=Abx = 247.9818 -173.1091 114.9273二、矩阵函数I.矩阵基本性质1)行列式
29、A=rand(3)A = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 det(A)ans = 0.42892)秩 rank(A)ans = 33)迹 trace(A)ans = 2.66284)范数 A=1 1 1;0 0 0;1 1 1A = 1 1 1 0 0 0 1 1 1 norm(A) %2-范数ans = 2.4495 norm(A,inf) % inf-范数ans = 3 norm(A,1) %1-范数ans = 2II.特征值计算 A=0 1;-1 0A = 0 1 -1 0 eig(A)ans
30、= 0 + 1.0000i 0 - 1.0000i x,D=eig(A)x = 0.7071 0.7071 0 + 0.7071i 0 - 0.7071iD = 0 + 1.0000i 0 0 0 - 1.0000i-A*X=X*DIII.三角分解 A=1 2 3;4 5 6; 7 8 9A = 1 2 3 4 5 6 7 8 9 L,U=lu(A)L = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0U = 7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0 0.0000 L*Uans = 1 2 3 4 5 6
31、7 8 9 L,U,P=lu(A)L = 1.0000 0 0 0.1429 1.0000 0 0.5714 0.5000 1.0000U = 7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0 0.0000P = 0 0 1 1 0 0 0 1 0 P*Aans = 7 8 9 1 2 3 4 5 6 L*Uans = 7 8 9 1 2 3 4 5 6IV.正交分解 A=1 2 3; 4 5 6;7 8 9;10 11 12A = 1 2 3 4 5 6 7 8 9 10 11 12 Q,R=qr(A)Q = -0.0776 -0.8331 0.5456 -0
32、.0478 -0.3105 -0.4512 -0.6919 0.4704 -0.5433 -0.0694 -0.2531 -0.7975 -0.7762 0.3124 0.3994 0.3748R = -12.8841 -14.5916 -16.2992 0 -1.0413 -2.0826 0 0 -0.0000 0 0 0 Q*Rans = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000- QR分解可用来求超定方程的最小二乘解 b=1;3; 5; 7b = 1 3 5
33、 7 x=AbWarning: Rank deficient, rank = 2 tol = 1.4594e-014.x = 0.5000 0 0.1667 y=Q*by = -9.1586 -0.3471 0.0000 -0.0000 x=RyWarning: Rank deficient, rank = 2 tol = 1.4594e-014.x = 0.5000 0 0.1667三、方程求根 p=1 -12 0 25 116p = 1 -12 0 25 116 r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i
34、已知多项式的根,可用poly构造相应的多项式: pp=poly(r)pp = 1.0000 -12.0000 -0.0000 25.0000 116.0000四、曲线拟和I.一维插值 h=1:12; t=5 8 9 15 25 29 31 30 22 25 27 24; plot(h,t,h,t,+)interp1插值函数的格式:Y1=interp1(X,Y,X1,method)X,Y原数据点;X1加细的数据点,或希望得到插值数据的数据点;Method-linear, spline, cubic; x1=1:0.2:12; y1=interp1(h,t,x1,spline); plot(h,t
35、,k+,x1,y1,k-)II.曲线拟和设有一组数据点寻找一个多项式n次多项式P*(x): x=0:0.1:1; y=-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; p=polyfit(x,y,2)p = -9.8108 20.1293 -0.0317 xi=linspace(0,1,100); z=polyval(p,xi); plot(x,y,ko,xi,z,r-) p=polyfit(x,y,10); xi=linspace(0,1,100); z=polyval(p,xi); plot(x,y,ko,xi,z,r-)
36、五、数值积分sum(x)输入数组x, 输出为x的和;cumsum(x)输入数组x, 输出为x的依次累加和;trapz(x)输入数组x, 输出为x按梯形求积公式计算的积分(单位步长);trapz(x,y)输入数组x,y, 输出y对x按梯形求积公式计算的积分(步长可以不相等);quad(fun,a,b)用辛普森公式(2阶)计算以fun.m的函数在(a,b)上的积分,相对误差为0.001;quad(fun,a,b,tol)用辛普森公式(2阶)计算以fun.m的函数在(a,b)上的积分,相对误差为tol;quad8(fun,a,b,tol)用辛普森公式(8阶)计算以fun.m的函数在(a,b)上的积分
37、,相对误差为tol;rand(1,n)产生n个(0,1)的随机数。计算积分1)矩形公式和梯形公式:将 h=pi/20; x=0:h:pi/2; y=sin(x); z1=sum(y(1:10)*hz1 = 0.9194 z2=sum(y(2:11)*hz2 = 1.0765 z=cumsum(y); z11=z(10)*hz11 = 0.9194 z12=(z(11)-z(1)*hz12 = 1.0765 z3=trapz(y)*hz3 = 0.99792)辛普森公式 z4=quad(sin,0,pi/2)z4 = 1.00003)蒙特卡罗方法 n=100000; x=rand(1,n); y
38、=sin(x.*pi/2); z=sum(y)*pi/(2*n)z = 1.0005六、数据分析max-最大值min-最小值mean-均值media-中值std-标准差sum-元素总和cumsum-累加和prod-元素乘积cumprod-累积corrcoef-互相关系数矩阵cov-协方差矩阵 a= 1 3 5 9 3 2 7 6; mean(a)ans = 4.5000 median(a)ans = 4 std(a)ans = 2.7255 cumsum(a)ans = 1 4 9 18 21 23 30 36 b=1 4 6 8 2 1 5 0; corrcoef(a,b)ans = 1.0
39、000 0.6771 0.6771 1.0000 cov(a,b)ans = 7.4286 5.2143 5.2143 7.9821编程基础关系运算和IF语句I. 关系运算和逻辑操作符关系运算符 = = =逻辑操作符& | y=all(x)若x 为向量,当所有元素非零时y=1,否则y=0;若x 为矩阵,all作用于列元素,y为行向量。y=any(x)若x 为向量,当有一个元素非零时y=1,否则y=0;若x 为矩阵,all作用于列元素,y为行向量。 A=1 2; 0 1A = 1 2 0 1 any(A) %any表示矩阵的每一列中%是否有非零元素ans = 1 1 all(A) %all表示矩
40、阵的每一列中%是否全是非零元素ans = 0 1IF语句:1)if end2)if elseend3)if elseif elseif elseend二、for 循环for =: end for i=1:3for j=1:4a(i,j)=1/(i+j-1);endend format rat aa = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 while语句while end求出满足1+2+n sum=0;n=0; while sum n=n-1; nn = 13 switch语句switch case value1 case value2 o
41、therwise endM文件:文本文件及函数文件I.文本文件: .mfibo.m:%An M-file to calculate Fibonnacinumbersf=1 1; i=1;while i15 f(i+2)=f(i)+f(i+1); i=i+1;endplot(f, *k)II.函数文件M-文件的第一行包含function;变量和运算都在文件内部,不在工作间;文件名为函数名;function =()function a=randint(m,n)%RANDINT Randomly generated integral %matrix%randint(m,n) returns an m
42、-by-n matrix %with entries between 0 and 9a=floor(10*rand(m,n);x=randint(2,3)x= 9 6 8 2 3 5stat.m:function mean,stdev=stat(x)% STAT Mean and standard deviation% For a vector x, stat(x) returns the mean %and standard deviation of x% For a matrix x, stat(x) returns two row %vectors containing, respect
43、ively,% the mean and standard deviation of each %column.m,n=size(x);if m=1 m=n; % handle case of a row vectorendmean=sum(x)/m;stdev=sqrt(sum(x.2)/m-mean.2); x=2 4 -7 0 5 -1; xm,xd=stat(x)xm = 0.5000 xd = 3.9476附录资料:不需要的可以自行删除各类滤波器的MATLAB程序理想低通滤波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),meshgrid)
44、;Hd=ones(size(IA);r=sqrt(f1.2+f2.2);Hd(r0.2)=0;Y=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 二、理想高通滤波器IA=imread(lena.bmp);f1,f2=freqspace(
45、size(IA),meshgrid);Hd=ones(size(IA);r=sqrt(f1.2+f2.2);Hd(r0.2)=0;Y=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); Butterworth低通滤波器IA=imr
46、ead(lena.bmp);f1,f2=freqspace(size(IA),meshgrid);D=0.3;r=f1.2+f2.2;n=4;for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1/(tn+1); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figur
47、esurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); Butterworth高通滤波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),meshgrid);D=0.3;r=f1.2+f2.2;n=4;for i=1:size(IA,1) for j=1:size(IA,2) t=(D*D)/r(i,j); Hd(i,j)=1/(tn+1); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(i
48、fft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 高斯低通滤波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);D=100/size(IA,1);r=f1.2+f2.2;Hd=ones(size(IA);for i=1:size(IA,1) for
49、j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=exp(-t); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 高斯高通滤波器IA=imread(lena.bmp);IB=imr
50、ead(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(IA,1);D=0.3;r=f1.2+f2.2;for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1-exp(-t); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imsh
51、ow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 梯形低通滤波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(IA,1);D0=0.1;D1=0.4;r=sqrt(f1.2+f2.2);Hd=zeros(size(IA);Hd(r=D0 & r(i,j)=D1 Hd(i,j)=(D1-r(i,j)/(D1-D0); end endendY=fft2(do
52、uble(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 梯形高通滤波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(IA,1);D0=0.1;D1=0.4;r=sqrt(f1.2+f2.2);Hd=ones(size(IA);Hd(r=D0 & r(i,j)=D1 Hd(i,j)=(D0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能用电系统产品合作协议书
- 合伙经营铲车合同范本
- 土壤改良工程填土施工合同范本
- 剧组法律顾问合同范本
- 合伙运输协议合同范本
- 商品陈列协议合同范本
- 各类广告合同范本
- 厂房喷漆合同范本
- 俱乐部管理合同范本
- 厨师和饭店合同范本
- 排水管道施工组织设计排水管道施工组织设计排水施工排水管道施工施工设计
- 人工智能科普教育活动方案设计
- 2024未来会议:AI与协作前沿趋势白皮书
- 2024年广东普通专升本《公共英语》完整版真题
- 国家中长期科技发展规划(2021-2035)
- 中国民族音乐的宫庭音乐
- 单原子催化剂的合成与应用
- 水利工程施工验收规范对工程监理单位的要求
- 五年级上册小数乘除练习300道及答案
- 《新概念英语第二册》电子书、单词、笔记、练习册(附答案)汇编
- Midea美的F50-22DE5(HEY)电热水器说明书
评论
0/150
提交评论