收藏 分享(赏)

实验三--MATLAB程序设计.docx

上传人:dreamzhangning 文档编号:2785747 上传时间:2018-09-27 格式:DOCX 页数:24 大小:162.04KB
下载 相关 举报
实验三--MATLAB程序设计.docx_第1页
第1页 / 共24页
实验三--MATLAB程序设计.docx_第2页
第2页 / 共24页
实验三--MATLAB程序设计.docx_第3页
第3页 / 共24页
实验三--MATLAB程序设计.docx_第4页
第4页 / 共24页
实验三--MATLAB程序设计.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

2、 添加到搜索目录之中,按 Save 按钮保存,如图 1。共 24 页,第 28 页28图 1 工作目录设置(2) 在 M 文件编辑器中编制命令行文件。在 File 菜单中,单击 NewM-File,弹出 M 文件编辑器,如图 2:图 2 编辑器在编辑器中输入如下命令程序:%求小于 2000 且为 2 的整数次幂的正整数。f(1)=2;k=1;共 24 页,第 29 页29while f(k) test2(9)f =2 4 8ans =2 4 82、编写一个函数 M 文件,计算下面函数的值,给出标量 x 的值,调用该函数后,返回 y 的值。共 24 页,第 31 页31sin,0()36,xy选

3、择一些数据测试编写的函数。源程序 :function y=myfun(x) if x3y=-x+6;elsey=x;end运行结果: test(0) ans = 0 test(2)ans =2 test(5)ans =13、编写一个函数 M 文件,返回向量 x 中元素的和、平均值、最共 24 页,第 32 页32大值、最小值、均方根值。其中方均根值(Root Mean Square)的计算公式为: 21Nirmsx并用下面数据测试你写的函数:(1) x=sin(0:0.01:6*pi)(2) x=rand(1,200),得到的 x 为 200 个(0,1)之间均匀分布的随机数。源程序:func

4、tion 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:nif min_xx(t)共 24 页,第 33 页33min_x=x(t);endendmax_x=x(1);for t=1:nif max_x x=sin(0:0.01:6*pi); myfun7(x)sum_x =共 24 页,第 34 页34-2.1218e-004m_x =-1.1256e-007max_x =1.0

5、000min_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 文件,若给出一个向量 ,函12,nxx数返回如下范德蒙矩阵。共 24 页,第 35 页351221121nnnxx 例如在命令窗口输入 v=myvander(2 3 4 5),得,同时生成一些数据测函数。11234596287v源程序:functionv=myvander(x)n=length(x);v=ones(n,n);for j

6、=1:nfor i=1:nv(i,j)=x(j)(i-1);endend运行结果:x=(2 3 4 5); test(x)ans =1 1 1 12 3 4 5共 24 页,第 36 页364 9 16 258 27 64 125 x=(1 2 3 ); test(x)ans =1 1 11 2 31 4 95、分别使用 while 和 for 编写命令文件,用循环语句编程计算s 值: 10322()ns同时对编写的文件设置断点,观察变量取值的变化情况。(1)For 循环:function=test()s=0;for n=2:1:10s=s+(n3-n2);enddisp(s)end运行结果:

7、 test()共 24 页,第 37 页372640(2)While 循环:function=test()s=0;n=2;while n test()26406、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2 除之,若为奇数,则与 3 相乘再加上 1。重复此过程,最终得到的结果为 1。如:21310516842163105168421建立命令 M 文件,完成上述功能,要求显示数字处理过程。共 24 页,第 38 页38源程序:function X = test()n=input(请输入一个正整数);X(1)=n;i=2;while n=1if rem(n,2)=0n=n/2;elsei

8、f rem(n,2)=1n=n*3+1;endX(i)=n;i=i+1;endend运行结果:请输入一个正整数2ans =2 1请输入一个正整数3ans =3 10 5 16 8 4 2 1请输入一个正整数12ans =共 24 页,第 39 页3912 6 3 10 5 16 8 4 2 17、设计一个学生身高的管理系统,输出身高的基本分为 5 等:很高、较高、中等、较矮、矮,其中 190cm 以上为“很高” ,180cm,190cm)区间为“较高” ,170cm,180cm)为“中等” ,1160cm,170cm)为“较矮” ,160cm 以下为“矮” ,要求分别用 if 语句和 swit

9、ch 语句实现(1)for 语句:n=100;for i =1:na=input(请输入身高);if a 1.90disp(很高)elseif a=1.80 共 24 页,第 43 页43end; end;i运行结果:a =Columns 1 through 121 1 2 3 5 8 13 21 34 55 89 144Columns 13 through 21233 377 610 987 1597 2584 4181 6765 10946ans =10946i =219、编写一个函数文件 and.m,用于求两个输入矩阵的乘积和点乘,然后在命令行窗口中调用该函数,要求:(1) 当两矩阵是尺

10、寸相同的方阵时,返回它们的乘积和点乘。(2) 当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘(3) 当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”共 24 页,第 44 页44源程序:function = test(x,y)m,n=size(x);i,j=size(y);if m=nz2=x.*y;disp(z1);disp(z2);elseif n=iz1=x*y;disp(z1);elseif m=idisp(z2);elseif n=idisp(这两个矩阵不能相乘);endend运行结果:1) x=1 2 3; 4 5 6;7 8 9; y=1

11、2 3; 4 5 6;7 8 9;共 24 页,第 45 页45 test(x,y)30 36 4266 81 96102 126 1501 4 916 25 3649 64 812) y=1 2 3; 4 5 6; x=1 2 3; 4 5 6; test(x,y)1 4 916 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,然后在如下程序中调用该函数,共 24 页,第 46 页46“分别使用 for 和 while 语句找出最小的 n 值,使得n!10100,并

12、求出 n!”(1)For 语句:Function=factorial()n=1;s=1;for n=1:10000s=s*n;if(s10100)break;enddisp(n);end运行结果:1234567(2)While 语句:共 24 页,第 47 页47function=factorial()n=1;s=1;while s factorial()811、下列程序用来判断一个人的体温是否处于危险状态。调试程序是否正确,如果程序错误指出错误在哪里?并写出正确答案。temp=input(请输入体温: temp = );if temp 36.5disp(体温正常);elseif temp 38.0共 24 页,第 48 页48disp(偏高!;elseif temp 39disp(温高!)end错误:没有范围源程序:temp=input(请输入体温: temp = );if temp = 36.5for i=1:5a(i,i)=5;for j=1:5if i=j+1|j=i+1a(i,j) = 1;endendenddisp(a);end运行结果:共 24 页,第 50 页50 test()5 1 0 0 01 5 1 0 00 1 5 1 00 0 1 5 10 0 0 1 5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报