实验三matlab程序设计.docx
共 24 页,第 27页 27 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按钮保存,如图1。共 24 页,第 28页 28 图1 工作目录设置 (2) 在M文件编辑器中编制命令行文件。在File菜单中,单 击New—>M-File,弹出M文件编辑器,如图2: 图2 编辑器 在编辑器中输入如下命令程序: %求小于2000且为2的整数次幂的正整数。f(1)=2;k=1;共 24 页,第 29页 29while f(k)> test2(9) f =2 4 8 ans =2 4 8 2、编写一个函数M文件,计算下面函数的值,给出标量x的值, 调用该函数后,返回y的值。共 24 页,第 31页 31 sin , 0 ( ) , 0 3 6, 3 x x y x x x x x 选择一些数据测试编写的函数。 源程序 : function [y]=myfun(x) if x3y=-x+6; elsey=x; end 运行结果: >> test(0) ans = 0 >> test(2) ans =2 >> test(5) ans =1 3、编写一个函数M文件,返回向量x中元素的和、平均值、最共 24 页,第 32页 32 大值、最小值、均方根值。其中方均根值(Root Mean Square)的计 算公式为: 2 1 1 N i i rms x N 并用下面数据测试你写的函数: (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:n m_x=sum_x/n;end end min_x=x(1); for t=1:nif min_x>x(t)共 24 页,第 33页 33min_x=x(t);end end max_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-004 m_x =-1.1256e-007 max_x =1.0000 min_x =-1.0000 rms_x =0.7071 2) >> x=rand(1,200); >> myfun7(x) sum_x =99.5448 m_x =0.4977 max_x =0.9961 min_x =0.0046 rms_x =0.5778 4、编写一个函数M文件,若给出一个向量 ,函 1 2 [ , , ] n x x x x 数返回如下范德蒙矩阵。共 24 页,第 35页 35 1 2 2 2 2 1 2 1 1 1 1 2 1 1 1 n n n n n n x x x x x x x x x 例如在命令窗口输入>>v=myvander([2 3 4 5]),得 ,同时生成一些数据测函数。 1 1 1 1 2 3 4 5 4 9 16 25 8 27 64 125 v 源程序: function[v]=myvander(x) n=length(x); v=ones(n,n); for j=1:nfor i=1:n v(i,j)=x(j)^(i-1); end end 运行结果: 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 9 5、分别使用while和for编写命令文件,用循环语句编程计算 s值: 10 3 2 2 ( ) n s n n 同时对编写的文件设置断点,观察变量取值的变化情况。 (1)For循环: function[]=test() s=0; for n=2:1:10s=s+(n^3-n^2); end disp(s) end 运行结果: >> test()