MATLAB程序设计与应用-第四章
- 格式:pdf
- 大小:689.76 KB
- 文档页数:19
第四章1.a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:'); endb=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10);b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10);c=rem(c,10);d=rem(c,10);e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*b+100*c+10*d+e;disp(['加密后:',num2str(a)])2.逻辑表达式法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');x=0.5:1:5.5;x1=(x>=0.5&x<1.5);x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5);y1=a.*(x.^2)+b.*x+c;y2=a*(sin(b)^c)+x;y3=log(abs(b+c./x));y=y1.*x1+y1.*x2+y3.*x3; disp(y)if语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5if x>=0.5 & x<1.5y=a.*(x.^2)+b.*x+celseif x>=1.5 & x<3.5y=a*(sin(b)^c)+xelseif x>=3.5 & x<5.5y=log(abs(b+c./x))endendswitch语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5switch floor(x/0.5)case {1,2}y=a.*(x.^2)+b.*x+c;case {3,4,5,6}y=a*(sin(b)^c)+x;case {7,8,9,10}y=log(abs(b+c./x)); enddisp(y)end3.x=fix(rand(1,20)*89)+10;x1=mean(x);n=find(rem(x,2)==0 & x<x1);disp(['小于平均数的偶数是:',num2str(x(n))]);4.(1)A=input('请输入20个数的一个行向量:');a=A(1);b=A(1);for m=Aif a>=ma=m;elseif b<=mb=m;endenddisp(['最小数是:',num2str(a)])disp(['最大数是:',num2str(b)])(2)A=input('请输入20个数的一个行向量:'); maxval=max(A)minval=min(A)5.s=0;for a=0:63c=2^a;s=s+c;enddisp(['2的0次方到63次方的和是:',num2str(s)])k=0:63n=2.^ks=sum(n)6.(1)sum1=0;for n=1:100x=(-1)^(n+1)*(1/n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=(-1)^(n+1)*(1/n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=(-1)^(n+1)*(1/n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(2)sum1=0;n1=0;for n=1:2:100x=(-1)^n1*(1/n);sum1=sum1+x;n1=n1+1;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;n2=0;for n=1:2:1000x=(-1)^n2*(1/n);sum2=sum2+x;n2=n2+1;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;n3=0;for n=1:2:10000x=(-1)^n3*(1/n);sum3=sum3+x;n3=n3+1;enddisp(['当n取10000时:sum=',num2str(sum3)])(3)sum1=0;for n=1:100x=1/(4^n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=1/(4^n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=1/(4^n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(4)sum1=1;for n=1:100x=4*n*n/(2*n-1)/(2*n+1);sum1=sum1*x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=1;for n=1:1000x=4*n*n/(2*n-1)/(2*n+1);sum2=sum2*x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=1;for n=1:10000x=4*n*n/(2*n-1)/(2*n+1);sum3=sum3*x;enddisp(['当n取10000时:sum=',num2str(sum3)])7.函数文件function f=fibnacci(n)if n==1 | n==2f=1;elsef=fibnacci(n-1)+fibnacci(n-2);end命令文件:shulie=[];for k=1:nshulie=[shulie fibnacci(k)];endshulie8.function [f1,f2]=juzhenji(x1,x2)f1=x1*x2;f2=x1.*x2;命令文件:clear alla=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)'); [f1,f2]=juzhenji(a,b);disp(f1)disp(f2)9.function sum=qiuhe(n,m)if n<=1sum=0;elsesum=n^m+qiuhe(n-1,m);end命令文件:clear ally=qiuhe(100,1)+qiuhe(50,2)+qiuhe(10,-1);disp(y)10.s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0 s=s+k(j);endendendss =108(2)global xx=1:2:5;y=2:2:6;sub(y);xyfunction fun=sub(z) global xz=3*x;x=x+z;x =4 12 20 y =2 4 6。
MATLAB程序设计与应用第三版教学设计简介本教学设计旨在通过使用MATLAB软件,教导学生如何进行程序设计、编码和应用。
本文将对使用MATLAB进行程序设计和应用的基本理论和实践方法进行阐述,并提供适合初学者和高级用户的范例。
教材选择本教学设计使用MATLAB程序设计与应用第三版教材作为主要教材。
该教材全面介绍了MATLAB的基础知识,包括向量、矩阵、图形和文件输入输出等内容,同时具有特别的实际应用研究类技术实例,使学习过程更加具有挑战性。
教学方法课堂讲授在课堂上,我们将讲解有关MATLAB的基本理论、概念和语言规范。
我们的教学方式主要是基于问题解决的策略,即通过回答一些有关MATLAB的问题来让学生了解该软件的基本概念和功能。
实验课实验课是本教学设计的重要组成部分。
在实验课上,学生将会得到亲身体验MATLAB的机会,并掌握该软件的基本应用工具和技巧。
练习课练习课的主要目的是激发学生的主动性,帮助他们独立完成MATLAB的编程任务。
在练习课上,我们将给出一些有关基本MATLAB编程的问题,并鼓励学生独立解决问题。
课程安排下面是MATLAB程序设计与应用课程的章节安排:第一章:MATLAB软件入门在本章节中,我们将介绍MATLAB的安装和使用方法,学习如何创建变量、向量和矩阵。
第二章:MATLAB基本命令该章节主要介绍了MATLAB的基础命令,例如算术计算符、逻辑判断命令、循环和条件语句等。
第三章:MATLAB图形在第三章节中,我们将介绍如何使用MATLAB进行图形绘制和可视化分析。
第四章:MATLAB函数该章节将深入探讨MATLAB函数的编写和应用。
第五章:MATLAB数组运算该章节将讨论MATLAB的数组运算,如矩阵乘法、转置,以及向量操作。
第六章:MATLAB文件输入输出在第六章节中,我们将介绍MATLAB的文件输入和输出,这对于进行大量数据分析非常重要。
第七章:MATLAB工具箱该章节将介绍MATLAB的不同工具箱,这些工具箱能增强MATLAB的功能。
第四章1.a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:'); endb=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10);b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10);c=rem(c,10);d=rem(c,10);e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*b+100*c+10*d+e;disp(['加密后:',num2str(a)])2.逻辑表达式法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');x=0.5:1:5.5;x1=(x>=0.5&x<1.5);x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5);y1=a.*(x.^2)+b.*x+c;y2=a*(sin(b)^c)+x;y3=log(abs(b+c./x));y=y1.*x1+y1.*x2+y3.*x3; disp(y)if语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5if x>=0.5 & x<1.5y=a.*(x.^2)+b.*x+celseif x>=1.5 & x<3.5y=a*(sin(b)^c)+xelseif x>=3.5 & x<5.5y=log(abs(b+c./x))endendswitch语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5switch floor(x/0.5)case {1,2}y=a.*(x.^2)+b.*x+c;case {3,4,5,6}y=a*(sin(b)^c)+x;case {7,8,9,10}y=log(abs(b+c./x)); enddisp(y)end3.x=fix(rand(1,20)*89)+10;x1=mean(x);n=find(rem(x,2)==0 & x<x1);disp(['小于平均数的偶数是:',num2str(x(n))]);4.(1)A=input('请输入20个数的一个行向量:');a=A(1);b=A(1);for m=Aif a>=ma=m;elseif b<=mb=m;endenddisp(['最小数是:',num2str(a)])disp(['最大数是:',num2str(b)])(2)A=input('请输入20个数的一个行向量:'); maxval=max(A)minval=min(A)5.s=0;for a=0:63c=2^a;s=s+c;enddisp(['2的0次方到63次方的和是:',num2str(s)])k=0:63n=2.^ks=sum(n)6.(1)sum1=0;for n=1:100x=(-1)^(n+1)*(1/n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=(-1)^(n+1)*(1/n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=(-1)^(n+1)*(1/n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(2)sum1=0;n1=0;for n=1:2:100x=(-1)^n1*(1/n);sum1=sum1+x;n1=n1+1;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;n2=0;for n=1:2:1000x=(-1)^n2*(1/n);sum2=sum2+x;n2=n2+1;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;n3=0;for n=1:2:10000x=(-1)^n3*(1/n);sum3=sum3+x;n3=n3+1;enddisp(['当n取10000时:sum=',num2str(sum3)])(3)sum1=0;for n=1:100x=1/(4^n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=1/(4^n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=1/(4^n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(4)sum1=1;for n=1:100x=4*n*n/(2*n-1)/(2*n+1);sum1=sum1*x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=1;for n=1:1000x=4*n*n/(2*n-1)/(2*n+1);sum2=sum2*x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=1;for n=1:10000x=4*n*n/(2*n-1)/(2*n+1);sum3=sum3*x;enddisp(['当n取10000时:sum=',num2str(sum3)])7.函数文件function f=fibnacci(n)if n==1 | n==2f=1;elsef=fibnacci(n-1)+fibnacci(n-2);end命令文件:shulie=[];for k=1:nshulie=[shulie fibnacci(k)];endshulie8.function [f1,f2]=juzhenji(x1,x2)f1=x1*x2;f2=x1.*x2;命令文件:clear alla=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)'); [f1,f2]=juzhenji(a,b);disp(f1)disp(f2)9.function sum=qiuhe(n,m)if n<=1sum=0;elsesum=n^m+qiuhe(n-1,m);end命令文件:clear ally=qiuhe(100,1)+qiuhe(50,2)+qiuhe(10,-1);disp(y)10.s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0 s=s+k(j);endendendss =108(2)global xx=1:2:5;y=2:2:6;sub(y);xyfunction fun=sub(z) global xz=3*x;x=x+z;x =4 12 20 y =2 4 6。
MATLAB程序设计及应用教学设计引言随着计算机技术的不断发展和应用领域的不断拓展,MATLAB作为一种矩阵计算语言和科学计算软件,在科学计算、数据处理、图像处理等方面被广泛使用。
MATLAB的应用范围越来越广泛,因此在教学中引入MATLAB程序设计的内容,能够提高学生的实践能力和解决实际问题的能力,提高教学质量和专业素养。
教学目标通过本课程的教学,学生将能够掌握MATLAB程序设计的基本语法和常用函数,并能够应用MATLAB解决实际问题。
具体目标如下:1.熟悉MATLAB程序设计的基本语法和函数使用。
2.掌握MATLAB程序设计的常用算法和数据结构。
3.能够基于MATLAB解决实际问题,包括科学计算、图像处理、数据分析等。
4.培养学生的编程思维和实践能力,提高解决问题的能力。
教学内容第一章 MATLAB基础本章主要介绍MATLAB的基本语法和常用函数,包括数据类型、变量定义、运算符、函数调用等。
通过实例演示和练习,学生能够初步掌握MATLAB程序设计的基本技能。
第二章 MATLAB图形界面本章介绍MATLAB的图形用户界面(GUI)和绘图功能,包括绘制图形、自定义界面、菜单栏设计等内容。
通过实例演示和练习,学生能够掌握MATLAB图形界面设计的基本技能。
第三章 MATLAB算法与数据结构本章主要介绍MATLAB的算法设计和数据结构,包括排序、搜索、字符串操作、矩阵运算等内容。
通过实例演示和练习,学生能够初步掌握MATLAB程序设计的算法和数据结构。
第四章 MATLAB应用案例本章介绍MATLAB在科学计算、图像处理、数据分析等方面的应用案例,包括线性方程组求解、图像处理、信号处理、数值积分等内容。
通过实例演示和练习,学生能够应用MATLAB解决实际问题。
教学方法本课程采用以学生为主体,教师辅助的教学方法。
具体方法如下:1.利用多媒体手段进行教学,包括演讲、演示、视频等。
2.讲授理论知识的同时,通过实例演示和练习,加强学生的实践能力。
第4章MATLAB程序设计4.1、M文件介绍二、M文件的创建MATLAB菜单中创建m文件使用记事本创建m文件4.1、M文件介绍MATLAB自带的m文件编辑器三、M文件的类型、命令文件未修改前的旧文件!在调试程序时一定要注意这一点,修改之后先保存,再运4.2、程序的流程控制二、条件语句2.if-else-end语句三、分支语句4.2、程序的流程控制四、检测语句4.2、程序的流程控制五、其他语句第(1)种情况4.2、程序的流程控制五、其他语句第(2)种情况4.2、程序的流程控制五、其他语句第(3)种情况一、函数的定义5、几种定义出错的情况直接在命令窗口定义函数是错误的,应新建m文件然后再定义,要注意系统的出错提示,了解出错的原因。
EVAL是一个函数,把字符串当命令执行,格式如下EVAL(s):s为一个字符串,感兴趣的同学可以查help EVAL一、函数的定义5、几种定义出错的情况下面来看一下某个同学用MATLAB定义函数的过程。
一、函数的定义5、几种定义出错的情况下面来看一下某个同学用MATLAB定义函数的过程。
运行出错!系统提示:不能在脚本文件中定义函数。
原因:函数定义语句前可以有注释,但不能有其他命令。
5、几种定义出错的情况下面来看一下某个同学用MATLAB定义函数的过程。
删除第一行,另存为myplus1.m这里又犯了一个错误,函数文件名和函数不一致!一、函数的定义5、几种定义出错的情况下面来看一下某个同学用MATLAB定义函数的过程。
运行继续出错,因为刚才函数文件保存为myplus1.m,该同学灵机一动,试了一下c=myplus1(1,2)一、函数的定义5、几种定义出错的情况下面来看一下某个同学用MATLAB定义函数的过程。
这一次系统竟然没有报错!但这种做法在高版本的MATLAB仍会报错!4.3、M文件函数三、函数的参数4.3、M文件函数四、函数的调用4.4、程序的调试与优化三、断点调试4.4、程序的调试与优化三、断点调试3、断点调试为什么要输入两次return?因为在程序中设置了3个断点,刚才程序运行过程中碰到了2个,所以要输入两次return才能返回系统。
《MATLAB 原理及应用》实验报告三.课后练习题答案1.为 ⎪⎩⎪⎨⎧<-=>+=01001x x x xx x y 编写赋值程序。
程序如下:①建立如下的M 文件:x=input('x=');%让用户通过键盘输入数值、字符串或表达式if x>0y=x+1;elseif x==0y=x;else x<0y=x-1;e nd程序执行结果如下>> kh1 %在当前工作目录下,文件名为“kh.1.m ” x=1>> yy =22.使用for ... end循环的array向量编程求出1+3+5...+100 的值程序如下:sum=0;>> for k=1:2:100sum=sum+k;end>> sumsum =25003.计算1+3+5...+100 的值,当和大于1000时终止计算。
程序如下:sum=0;for m=1:2:100; %建立1 3 5….100的向量if sum<=1000 %如果sum小于1000则可以继续加sum=sum+m; %累加elsebreak; %若sum的结果不符合条件就跳出整个循环endend结果为:sum =1024k =653.1计算从1开始多少个自然数之和超过100。
程序如下:>> sum=0;n=0;>> while sum<=100n=n+1;sum=sum+n;end结果为:n =14sum =1054.求1!+2!+3!+……+8!的值程序如下:n=1;sum=1;for m=2:8; %循环7次使得得到各次阶乘n=n*m;sum=sum+n; %累加end结果为:sum =462335.写程序,判断一年是否为闰年,符合下面两条件之一:(1990~2014)A、能被4整除,不能被100整除B、能被400整除程序如下count=0;for y=1990:2014;if((rem(y,4)==0&rem(y,100)~=0)|(rem(y,4)==0&rem(y,400)~=0));count=count+1;endend结果为:count =5。
第4章MATLAB程序设计
4.1、M文件介绍
二、M文件的创建
MATLAB菜单中创建m文件使用记事本创建m文件4.1、M文件介绍MATLAB自带的m文件编辑器
三、M文件的类型
、命令文件
未修改前的旧文件!
在调试程序时一定要注意这一点,修改之后先保存,再运
4.2、程序的流程控制
二、条件语句
2.if-else-end语句
三、分支语句
4.2、程序的流程控制
四、检测语句
4.2、程序的流程控制
五、其他语句
第(1)种情况
4.2、程序的流程控制
五、其他语句
第(2)种情况
4.2、程序的流程控制
五、其他语句
第(3)种情况
一、函数的定义
5、几种定义出错的情况
直接在命令窗口定义函数是错误的,
应新建m文件然后再定义,
要注意系统的出错提示,了解出错的原因。
EVAL是一个函数,把字符串当命令执行,
格式如下
EVAL(s):s为一个字符串,
感兴趣的同学可以查help EVAL
一、函数的定义
5、几种定义出错的情况
下面来看一下某个同学用MATLAB定义函数的过程。
一、函数的定义
5、几种定义出错的情况
下面来看一下某个同学用MATLAB定义函数的过程。
运行出错!
系统提示:不能在脚本文件中定义函数。
原因:函数定义语句前可以有注释,
但不能有其他命令。
5、几种定义出错的情况
下面来看一下某个同学用MATLAB定义函数的过程。
删除第一行,另存为myplus1.m
这里又犯了一个错误,
函数文件名和函数不一致!
一、函数的定义
5、几种定义出错的情况
下面来看一下某个同学用MATLAB定义函数的过程。
运行继续出错,因为刚才函数文件
保存为myplus1.m,该同学灵机一动,
试了一下c=myplus1(1,2)
一、函数的定义
5、几种定义出错的情况
下面来看一下某个同学用MATLAB定义函数的过程。
这一次系统竟然没有报错!
但这种做法在高版本的MATLAB
仍会报错!
4.3、M文件函数
三、函数的参数
4.3、M文件函数
四、函数的调用
4.4、程序的调试与优化
三、断点调试
4.4、程序的调试与优化
三、断点调试
3、断点调试
为什么要输入两次return?
因为在程序中设置了3个断点,刚才程序运行过程中碰到了2个,所以要输入两次return才能返回系统。