58matlab3程序设计

上传人:xins****2008 文档编号:101068093 上传时间:2019-09-26 格式:DOC 页数:13 大小:192KB
返回 下载 相关 举报
58matlab3程序设计_第1页
第1页 / 共13页
58matlab3程序设计_第2页
第2页 / 共13页
58matlab3程序设计_第3页
第3页 / 共13页
58matlab3程序设计_第4页
第4页 / 共13页
58matlab3程序设计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《58matlab3程序设计》由会员分享,可在线阅读,更多相关《58matlab3程序设计(13页珍藏版)》请在金锄头文库上搜索。

1、 MatLab & 数学建模 授课:曾景峰 (江西环境工程职业学院) 第三讲 MatLab程序设计一、 M文件我们前面所介绍在MATLAB所做的运算,是适合于所要计算的算式不太长或是想以交谈式方式做运算,如果要计算的算式很长有数十行或是须要一再执行的算式,则那样的方式就行不通了。MATLAB提供了所谓的 M-file 的方式,可让使用者自行将指令及算式写成巨集程式然后储存成一个特别的文档,其扩展名是m,譬如 picture.m,其中的picture就是文件名称。(1)编写M脚本文件的步骤l 点击MATLAB指令窗工具条上的New File图标 ,就可打开如图所示的MATLAB文件编辑调试器。用

2、户即可在空白窗口中编写程序。输入如下一段程序 (picture.m)x=linspace(0,2*pi,20); y=sin(x); plot(x,y,r+) title(2D plot) 点击编辑调试器工具条图标 ,在弹出的Windows标准风格的“保存为”对话框中,选择保存文件夹,键入新编文件名(如picture),点击【保存】键,就完成了文件保存。(2)运行文件l 使picture.m所在目录成为当前目录(系统默认路径),或让该目录处在MATLAB的搜索路径上.l 然后在指令窗口运行以下指令,便可得到图形。picture 再来看另一个 M-file: area.m 的例子 % 新建M-f

3、ile, area.m % 计算一个球的体积 r = input(Type radius 输入半径:); Area=pi*r2; volume=(4/3)*pi*r3; fprintf(半径 The radius is %12.5fn,r) fprintf(面积 The area of a circle is %12.5fn,Area) fprintf(体积 The volume of a sphere is %12.5fn,volume)在指令窗口运行指令 area二、 M文件函数一个函数M文件与脚本文件类似之处在于它们都是一个有.m 扩展名的文本文件。如同脚本M文件一样,函数M文件不进入命

4、令窗口,而是由文本编辑器所创建的外部文本文件。一个函数的M文件与脚本文件在通信方面是不同的。函数与MATLAB工作空间之间的通信,只通过传递给它的变量和通过它所创建的输出变量。在函数内中间变量不出现在MATLAB工作空间,或与MATLAB工作空间不交互。一个函数的M文件的第一行把M文件定义为一个函数,并指定它的名字。它与文件名相同,但没有.m 扩展名。它也定义了它的输入和输出变量。M文件函数之间可以互相调用.M文件函数必须遵循以下特定的规则。 1. 函数名和文件名必须相同。例如,函数fliplr 存储在名为fliplr.m 文件中。 2. MATLAB头一次执行一个M文件函数时,它打开相应的文

5、本文件并将命令编辑成存储器的内部表示,以加速执行以后所有的调用。如果函数包含了对其它M文件函数的引用,它们也同样被编译到存储器。普通的脚本M文件不被编译,即使它们是从函数M文件内调用;打开脚本M文件,调用一次就逐行进行注释。 3. 在函数M文件中,到第一个非注释行为止的注释行是帮助文本。当需要帮助时,返回该文本。例如, help fliplr返回上述前八行注释。 4. 第一行帮助行,名为H1 行,是由lookfor 命令搜索的行。 5. 函数可以有零个或更多个输入参量。函数可以有零个或更多个输出参量。 6. 函数可以按少于函数M文件中所规定的输入和输出变量进行调用,但不能用多于函数M文件中所规

6、定的输入和输出变量数目。如果输入和输出变量数目多于函数M文件中function 语句一开始所规定的数目,则调用时自动返回一个错误。 7. 当函数有一个以上输出变量时,输出变量包含在括号内。例如,V,D = eig(A)。不要把这个句法与等号右边的V,D 相混淆。右边的V,D 是由数组V和D 所组成。 8. 当调用一个函数时,所用的输入和输出的参量的数目,在函数内是规定好的。函数工作空间变量nargin 包含输入参量个数;函数工作空间变量nargout 包含输出参量个数。事实上,这些变量常用来设置缺省输入变量,并决定用户所希望的输出变量。例: ,计算f(1)f(2)+f2(3)首先建立一个M函数

7、:fun1.mfunction Y= fun1(x)Y=(x3 - 2*x2 + x - 6.3)/(x2 + 0.05*x - 3.14);在指令窗口运行以下指令:fun1(1)*fun1(2)+fun1(3)*fun1(3)ans = -12.6023例:计算阶层函数 fact.mfunction output = fact(n) if n = 1 output = 1; return; end output = n*fact(n-1); 【例】M函数文件示例。circle.mfunction sa = circle(r,s)%CIRCLEplot a circle of radii r

8、in the line specified by s.%r指定半径的数值%s指定线色的字符串%sa圆面积% circle(r)利用蓝实线画半径为 r 的圆周线.% circle(r,s)利用串 s 指定的线色画半径为 r 的圆周线.% sa=circle(r)计算圆面积,并画半径为 r 的蓝色圆面.% sa=circle(r,s)计算圆面积,并画半径为 r 的 s 色圆面.if nargin2 error(输入宗量太多。);end;if nargin=1 s=b;end;clf;t=0:pi/100:2*pi;x=r*exp(i*t);if nargout=0 plot(x,s);else s

9、a=pi*r*r; fill(real(x),imag(x),s)endaxis(square)三 MATLAB控制流for循环结构For循环允许一组命令以固定的和预定的次数重复。For循环的一般形式是:for x = arraycommandsend在for和end语句之间的commands按数组中的每一列执行一次。【例】 for n=1:10 x(n)=sin(n*pi/10); end xx = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878

10、0.3090 0.0000 For循环可按需要嵌套。n=0:1:10;for i=1:11for j=1:11y(i)=sin(n(i);n(j)=n(j)*10;endendy = Columns 1 through 7 0 -0.5064 0.9300 -0.8027 -0.1425 -0.9765 -0.5118 Columns 8 through 11 0.8586 -0.9957 0.9917 0.9287n = 1.0e+012 * Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 t

11、hrough 11 0.7000 0.8000 0.9000 1.0000可以利用break命令跳出for循环【例】一个简单的for循环示例。for i=1:10; %i依次取1,2,10,.x(i)=i; %对每个i值,重复执行由该指令构成的循环体,end; x %要求显示运行后数组x的值。 x = 1 2 3 4 5 6 7 8 9 10 while循环结构与For循环以固定次数求一组命令的值相反,While 循环以不定的次数求一组语句的值。While循环的一般形式是: while expression commands end只要在表达式里的所有元素为真,就执行while和end 语句之

12、间的commands。【例】 num=0;EPS=1; while (1+EPS)1 EPS=EPS/2; num=num+1; end numnum = 53 EPS=2*EPSEPS = 2.2204e-016【例】x = zeros(1,6); % x是一个的零矩阵 i = 1; while i = 6, x(i) = 1/i; i = i+1; end xx =1.0000 0.5000 0.3333 0.2500 0.2000 0.1667可以利用break命令跳出while循环while循环可按需要嵌套。【例】Fibonacci数组的元素满足Fibonacci 规则: ,;且。现要求该数组中第一个大于10000的元素。a(1)=1;a(2)=1;i=2;while a(i)5 cost=(1-20/100)*cost; end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号