ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:95.39KB ,
资源ID:28320453      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28320453.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验三MATLAB程序设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验三MATLAB程序设计.docx

1、实验三MATLAB程序设计2014秋2012级MATLAB程序设计实验报告班级:软件C121 姓名:冯杨腾 学号:125692实验三 MATLAB程序设计一、实验目的1、掌握建立和执行M文件的方法。2、掌握选择结构、多分支选择结构程序的编程方法。 3、掌握多种循环结构程序的编程方法。4、掌握定义函数文件和调用函数文件的方法。二、实验内容1、MATLAB M文件的创建与使用。(1) 建立自己工作目录,如D:MATLAB。在File菜单中,单击Set Path菜单项,在弹出对话框中建立目标文件夹,:单击Add Folder按钮,将自己的工作目录D:MATLAB添加到搜索目录之中,按Save按钮保存

2、,如图1。图1 工作目录设置(2) 在M文件编辑器中编制命令行文件。在File菜单中,单击NewM-File,弹出M文件编辑器,如图2:图2 编辑器在编辑器中输入如下命令程序:%求小于2000且为2的整数次幂的正整数。 f(1)=2; k=1; while f(k)1000 f(k+1)=f(k)*2; k=k+1; end f,k调试后,将其以test1.m形式保存在D:MATLAB中。(3) 命令行程序运行。进入命令窗口,键入test1,观察运行结果:f = Columns 1 through 92 4 8 16 32 64 128 256 512 Column 10 1024k = 10

3、(4) 按上述步骤,在在编辑器中输入如下函数文件:function f=tt(n) %求小于任何正整数且为2的整数次幂的正整数。 %c=n(n) %n可取任意正整数。 %2004年8月。 f(1)=2; k=1; while f(k) test2(9)f = 2 4 8ans = 2 4 82、编写一个函数M文件,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。选择一些数据测试编写的函数。源程序 :function y=myfun(x) if x3 y=-x+6;else y=x;end运行结果: test(0) ans = 0 test(2)ans = 2 test(5)ans

4、= 13、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。其中方均根值(Root Mean Square)的计算公式为:并用下面数据测试你写的函数:(1) x=sin(0:0.01:6*pi)(2) x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。源程序:function sum_x,m_x,max_x,min_x,rsm_x = myfun7(x)sum_x=0;a=x;for k=a;sum_x=sum_x+k;n=length(x);for i=1:nm_x=sum_x/n; endendmin_x=x(1);for t=1:n

5、if min_xx(t) min_x=x(t); endendmax_x=x(1);for t=1:n if max_x x=sin(0:0.01:6*pi); myfun7(x)sum_x = -2.1218e-004m_x = -1.1256e-007max_x = 1.0000min_x = -1.0000rms_x = 0.70712) x=rand(1,200); myfun7(x)sum_x = 99.5448m_x = 0.4977max_x = 0.9961min_x = 0.0046rms_x = 0.57784、编写一个函数M文件,若给出一个向量,函数返回如下范德蒙矩阵。例

6、如在命令窗口输入v=myvander(2 3 4 5),得,同时生成一些数据测函数。源程序:functionv=myvander(x)n=length(x);v=ones(n,n);for j=1:n for i=1:nv(i,j)=x(j)(i-1);endend运行结果:x=(2 3 4 5); test(x)ans = 1 1 1 1 2 3 4 5 4 9 16 25 8 27 64 125 x=(1 2 3 ); test(x)ans = 1 1 1 1 2 3 1 4 95、分别使用while和for编写命令文件,用循环语句编程计算s值:同时对编写的文件设置断点,观察变量取值的变化

7、情况。(1)For循环:function=test()s=0;for n=2:1:10 s=s+(n3-n2);enddisp(s)end运行结果: test() 2640(2)While循环:function=test()s=0;n=2;while n test() 26406、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:21310516842163105168421建立命令M文件,完成上述功能,要求显示数字处理过程。源程序:function X = test()n=input(请输入一个正整数);X(1)=n

8、;i=2;while n=1 if rem(n,2)=0 n=n/2; elseif rem(n,2)=1 n=n*3+1; end X(i)=n; i=i+1;endend运行结果:请输入一个正整数2ans = 2 1请输入一个正整数3ans = 3 10 5 16 8 4 2 1请输入一个正整数12ans = 12 6 3 10 5 16 8 4 2 17、设计一个学生身高的管理系统,输出身高的基本分为5等:很高、较高、中等、较矮、矮,其中190cm以上为“很高”,180cm,190cm)区间为“较高”,170cm,180cm)为“中等”,1160cm,170cm)为“较矮”,160cm以

9、下为“矮”,要求分别用if语句和switch语句实现(1)for语句:n=100;for i =1:n a=input(请输入身高); if a 1.90 disp(很高) elseif a=1.80&a=1.70&a=1.60&a1.70 disp(较矮) elseif a1.60 disp(矮) end end运行结果:请输入身高1.95很高请输入身高1.85较高请输入身高1.75中等请输入身高1.65较矮请输入身高1.55矮switch语句:x=input(身高为:);n=(x-100)/10;switch floor(n) case10,9 disp(很高); case8 disp(较

10、高); case7 disp(中等); case6 disp(较矮); case5,4,3,2,1,0 disp(矮)end运行结果:身高为:195很高身高为:185较高身高为:175中等身高为:165较矮身高为:155矮8、Fibonacci数组的元素满足Fibonacci规则:ak+2=ak+ak+1,(k=1,2,3,);且a1= a2=1。请设计一段程序,求出该数组中第一个大于10000的元素要求显示的结果为:i=21a(i)=10946或者a(21)=10946源程序:a(1)=1;a(2)=1;i=2;while a(i)=10000 a(i), break; end; end;i

11、运行结果:a = Columns 1 through 12 1 1 2 3 5 8 13 21 34 55 89 144 Columns 13 through 21 233 377 610 987 1597 2584 4181 6765 10946ans = 10946i = 219、编写一个函数文件and.m,用于求两个输入矩阵的乘积和点乘,然后在命令行窗口中调用该函数,要求:(1) 当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。(2) 当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘(3) 当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”源程序:f

12、unction = test(x,y)m,n=size(x);i,j=size(y);if m=n&i=j&m=i z1=x*y; z2=x.*y; disp(z1); disp(z2);elseif n=i z1=x*y; disp(z1);elseif m=i&n=j z2=x.*y; disp(z2);elseif n=i disp(这两个矩阵不能相乘);endend运行结果:1) x=1 2 3; 4 5 6;7 8 9; y=1 2 3; 4 5 6;7 8 9; test(x,y) 30 36 42 66 81 96 102 126 150 1 4 9 16 25 36 49 64

13、 812) y=1 2 3; 4 5 6; x=1 2 3; 4 5 6; test(x,y) 1 4 9 16 25 363) x=1 2 2; 2 3 3;3 4 4; y=1 2 3; 4 5 6; test(x,y)这两个矩阵不能相乘10、编写一个阶乘函数factorial.m,然后在如下程序中调用该函数,“分别使用for和while语句找出最小的n值,使得n!10100,并求出n!”(1)For语句:Function=factorial()n=1;s=1;for n=1:10000 s=s*n; if(s10100) break; end disp(n);end运行结果:123456

14、7(2)While语句:function=factorial()n=1;s=1;while s factorial() 811、下列程序用来判断一个人的体温是否处于危险状态。调试程序是否正确,如果程序错误指出错误在哪里?并写出正确答案。temp=input(请输入体温: temp = );if temp 36.5 disp(体温正常);elseif temp 38.0 disp(偏高!;elseif temp 39 disp(温高!)end错误:没有范围源程序:temp=input(请输入体温: temp = );if temp = 36.5&temp 38.0&temp 39 disp(温高!)end运行结果:请输入体温: temp = 35体温偏低请输入体温: temp = 37体温正常请输入体温: temp = 38.5偏高!请输入体温: temp = 40温高!12、使用嵌套for循环命令创建下列矩阵:源程序:function =test()a=zeros(5);for i=1:5 a(i,i)=5; for j=1:5 if i=j+1|j=i+1 a(i,j) = 1; end endenddisp(a);end运行结果: test() 5 1 0 0 0 1 5 1 0 0 0 1 5 1 0 0 0 1 5 1 0 0 0 1 5

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1