实验三MATLAB程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。
图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,观察运行结果:
f =
Columns 1 through 9
2 4 8 16 32 64 128 256
512
Column 10
1024
k =
10
(4)按上述步骤,在在编辑器中输入如下函数文件:
function f=tt(n)
%求小于任何正整数且为2的整数次幂的正整数。 %c=n(n)
%n 可取任意正整数。 %2004年8月。 f(1)=2; k=1;
while f(k) 调试后,将其以test2.m 形式保存在D:\MATLAB 中。 (5)进入命令窗口,键入test2(9),观察程序运行结果。 >> test2(9) f = 2 4 8 ans = 2 4 8 2、编写一个函数M 文件,计算下面函数的值,给出标量x 的值,调用该函数后,返回y 的值。 sin , (), 036,3 x x y x x x x x ≤⎧⎪=<≤⎨⎪-+>⎩ 选择一些数据测试编写的函数。 源程序 : function [y]=myfun(x) if x<=0 y=sin(x); elseif x>3 y=-x+6; else y=x; end 运行结果: >> test(0) ans = >> test(2) ans = 2 >> test(5) ans = 1 3、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。其中方均根值(Root Mean Square)的计算公式为: rms= 并用下面数据测试你写的函数: (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:n if min_x>x(t) min_x=x(t); end end max_x=x(1); for t=1:n if max_x max_x=x(t); end end sum_x1=0; for t=1:n sum_x1=sum_x1+x(t).^2; rms_x=sqrt(sum_x1/n); end sum_x m_x max_x min_x rms_x 运行结果: (1) >> x=sin(0:0.01:6*pi); >> myfun7(x) sum_x = -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 文件,若给出一个向量12[,,]n x x x x =,函数 返回如下范德蒙矩阵。 1222212 1 111 2 11 1n n n n n n x x x x x x x x x ---⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦ 例如在命令窗口输入>>v =myvander([2 3 4 5]),得 111123 4 5 491625 8 2764125v ⎡⎤⎢⎥⎢ ⎥=⎢⎥⎢⎥ ⎣⎦,同时生成一些数据测函数。 源程序: function[v]=myvander(x) n=length(x); v=ones(n,n); for j=1:n for i=1:n v(i,j)=x(j)^(i-1); end end 运行结果: x=([2 3 4 5]); >> test(x) ans =