实验三 MATLAB程序设计
一、实验目的
1、掌握建立和执行M文件的方法。
2、掌握选择结构、多分支选择结构程序的编程方法。 3、掌握多种循环结构程序的编程方法。 4、掌握定义函数文件和调用函数文件的方法。 二、实验内容
1、MATLAB M文件的创建与使用。
(1) 建立自己工作目录,如D:\\MATLAB。在File菜单中,单击Set Path菜单项,在弹出对话框中建立目标文件夹,:单击Add Folder按钮,将自己的工作目录D:\\MATLAB添加到搜索目录之中,按Save按钮保存,如图1。
图1 工作目录设置
(2) 在M文件编辑器中编制命令行文件。在File菜单中,单击New—>M-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,观察运行结果: (4) 按上述步骤,在在编辑器中输入如下函数文件:
function f=tt(n)
%求小于任何正整数且为2的整数次幂的正整数。 %c=n(n)
%n可取任意正整数。 %
04年8月。 f(1)=2; k=1;
while f(k) 调试后,将其以test2.m形式保存在D:\\MATLAB中。 (5) 进入命令窗口,键入test2(9),观察程序运行结果。 2、编写一个函数M文件,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。 ?sinx,?y(x)??x,??x?6,?选择一些数据测试编写的函数。 function y(x) x?00?x?3 x?3%UNTITLED7 Summary of this function goes here % Detailed explanation goes here if x<=0 sin(x) end if 0 3、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。其中方均根值(Root Mean Square)的计算公式为: rms?并用下面数据测试你写的函数: (1) x=sin(0:0.01:6*pi) 1N?xi?1N2i (2) x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。 (3) (4) (5) (6) (7) (8) (9) (10) (11) 4、编写一个函数M文件,若给出一个向量x?[x1,x2,function fun(x) %UNTITLED Summary of this function goes here % Detailed explanation goes hereg sum(x) mean(x) max(x) min(x) sqrt(meansqr(x)) end xn],函数返回如 下范德蒙矩阵。 ?1?x?1?x12??n?1?x?11x22x2n?1x21?xn??2xn? ??n?1xn??1??111?2345??,同时例如在命令窗口输入>>v=myvander([2 3 4 5]),得v???491625????82764125?生成一些数据测函数。 function fun4_vander(A) %UNTITLED Summary of this function goes here % Detailed explanation goes here rot90(vander(A)) end 5、分别使用while和for编写命令文件,用循环语句编程计算s值: s??(n3?n2)n?210 同时对编写的文件设置断点,观察变量取值的变化情况。 function fun5() %UNTITLED Summary of this function goes here % Detailed explanation goes here n=2;s=0; while n<=10 s=s+n^3-n^2; n=n+1; end s s=0; for i=2:10 s=s+i^3-i^2; end s 6、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2?1 3?10?5?16?8?4?2?1 6?3?10?5?16?8?4?2?1 function fun6(x) %UNTITLED Summary of this function goes here % Detailed explanation goes here if x>0&&rem(x,1)==0 disp(x) while x~=1 if rem(x,2)==1 x=x*3+1; disp('->') disp(x) end x=x/2; disp('->') disp(x) end end if rem(x,1)~=0||x<0 disp('x·??y??êy') end end 建立命令M文件,完成上述功能,要求显示数字处理过程。 7、设计一个学生身高的管理系统,输出身高的基本分为5等:很高、较高、中等、较矮、矮,其中190cm以上为“很高”,[180cm,190cm)区间为“较高”,[170cm,180cm)为“中等”,[1160cm,170cm)为“较矮”,160cm以下为“矮”,要求分别用if语句和switch语句实现 function fun7(x) %UNTITLED3 Summary of this function goes here % Detailed explanation goes here switch(fix(x/10)) case 18 disp('????') case 17 disp('?Dμè') case 16
2014秋2012级MATLAB程序设计实验报告三 - 副本



