《MATLAB程序设计》由会员分享,可在线阅读,更多相关《MATLAB程序设计(27页珍藏版)》请在金锄头文库上搜索。
1、5. MATLAB 程序设计程序设计MATLAB 语言简洁高效,被称为第四代编程语言。1一、M 文件n包含 MATLAB 代码的文件称为 M 文件,扩展名为 .m。2M 文件的形式M 文件有两种形式:独立的 M 文件 称命令文件命令文件 (Script File)可调用 M 文件 称函数文件函数文件 (Function File) 31. 命令文件n命令文件是一串指令的集合,没有输入输出参数。n与在命令窗口逐行执行文件中的所有指令等价。4【例】绘制“花瓣”图案% 一个用来绘制花瓣 (flower petal) 图案的命令文件theta = -pi:0.01:pi;rho(1,:) = 2*si
2、n(5*theta).2;rho(2,:) = cos(10*theta).3;rho(3,:) = sin(theta).2;rho(4,:) = 5*cos(3.5*theta).3;for i = 1:4 polar(theta,rho(i,:),r) pauseend将该文本文件命名为 ,并在指令窗口运行 petal,将看到下面的图案56几点说明n若用户把 petal.m 存放在 d:mywork 中,那么在运行前,应在指令窗中运行 cd d:mywork 或将其加入搜索路径n petal 运行后存放在内存中的变量,可以用 whos 看到72. 函数文件n如果 M 文件的第一行包含 f
3、unction,此文件就是函数文件。n函数文件区别于命令文件之处是: 命令文件中的变量在执行完后保存在内存中保存在内存中 函数文件中的变量在执行完后将被清除将被清除 函数文件有输入输出参数,命令文件没有8【例】计算向量元素的平均值function y = average(x)% 本函数计算向量元素的平均值本函数计算向量元素的平均值y = sum(x) / length(x); % 计算过程计算过程9几点说明 第一行执行指令的作用:指明该文件是函数文件;定义函数名、输入参数和输出参数。 M 文件的文件名必须是 .m在 M 文件前的几行注释可供 help 命令查询。10二、程序结构nMATLAB
4、有顺序、循环和分支 3 种基本程序结构。 n循环由 while 和 for 语句实现,分支由 if 和 switch 语句实现。11语法为: for i = 表达式 (表达式为一个向量) 可执行语句 end【例】 :利用 for 循环求1+ 3 + +9 的值 s = 0; for i = 1:2:9 s = s + i; ends = 251. for-end 循环12for 循环的嵌套【例】 :利用 for 循环求1!+2!+3!+ +5!的值 s = 0; for i = 1:5 pdr = 1; for k = 1:i pdr = pdr * k; end s = s + pdr; e
5、nds = 153132. while - end 循环while 循环将循环体中的语句循环执行不定次数。 语法为: while 表达式 循环体语句 end 表达式一般是由逻辑运算和关系运算以及一般 运算组成的,以判断循环的进行和停止; 只要表达式的值非 0,继续循环; 直到表达式值为 0,循环停止。14【例】:用 while 循环求 1100 间整数的和 s = 0; i = 1; while i = 100 s = s + i; i = i + 1; end s s = 5050 153. 分支结构 if else end 语句有 3 种形式: if 表达式 执行语句 end if 表达式
6、 是 语句1 else 否 语句2 end16 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else 语句n end多分支结构17【例】 :编写函数,计算函数值 x (x=1) 2x-1 (1x=10)if x=10 y = 3*x - 11;elseif x1 y = 2*x - 1;else y = x;end18四、程序流控制 input 提示用户从键盘输入数值、字符串、表达式。 【例】 : n = input(How many apples= ) How many apples= 5 n = 5pause 暂停,等待用户响应,并在继续执行前按
7、任一 个键 。pause(n) - 暂停 n 秒。 break 中断 for, while 循环语句的执行,在嵌套循环结 构中, break 从最里层循环退出。19【例】:求 100,200 之间第一个能被 21 整除的整数。for n=100:200 if rem(n,21)=0 continue end breakendn20五、函数调用在 MATLAB 中,调用函数的常用形式是:输出参数1,输出参数2,. = 函数名函数名(输入参数1,输入参数2,.)注意:注意:函数调用时各参数出现的顺序,应该与函数定义时的顺序一样,否则出错。 21函数调用可以嵌套,一个函数可以调用别的函数,甚至它自己
8、,即递归调用递归调用。【例】:用递归调用形式计算 n 的阶乘function f=factor(n)% factor.m 计算 n 的阶乘if n = 1 f = 1; return;else f = n * factor(n-1);endfactor(5)ans = 12022练习 11. 利用 for 循环求 s = 1 1/2 + 1/3 -1/4 + .+1/99 -1/100 的值。2. 生成向量 x = 1: 2: 100, 计算 sum(1./x)3. 根据 求 的近似值。 当 n 分别取 100、 1000、10000 时,结果分别是多少? 要求:分别用循环语句和向量运算 (sum 函数) 实现。23练习 21. 根据 , 求:(1) y1e-5 & n_step 500 x = x_new; x_new = a/(b+x); n_step = n_step + 1;end% compare with exact valuex_newexact = (-b + sqrt(b2+4*a)/227