Download presentation
Presentation is loading. Please wait.
1
1.4 M文件与程序设计 1.4.1 文件的操作 1.4.2 命令文件 1.4.3 M函数文件 1.4.4 程序设计语句
2
M文件有两种形式:命令文件和M函数文件。
由若干MATLAB语句或命令组成的文件 两种文件的扩展名都是.m M文件名以字母开头,不要与内置函数重名 表达式后面接分号,其结果仍保存在内存中 若程序为命令文件,则程序执行完以后,中间变量仍予以保留; 若程序为函数文件,则程序执行完以后,中间变量被全部删除。
3
在命令窗口中选择File|New|M-File 打开MATLAB自带的“M函数与M文件编辑器” 用鼠标单击M-File ,
1.4.1 文件的操作 图 1.5 新建M文件 在命令窗口中选择File|New|M-File 打开MATLAB自带的“M函数与M文件编辑器” 用鼠标单击M-File , 图 1.6 可在此编辑窗口编辑新M文件 也可以对已经存在的M文件进行编辑、存储、修改和读取。
4
图1.5
5
图1.6
6
1.4.2 命令文件 命令文件的一般形式为: <M文件名>.m a1.m, pp.m M文件有两种运行方式:
一是在命令窗口直接写文件名,按Enter键; 二是在编辑窗口打开菜单Tools,再单击Run。 M文件保存的路径 一定要在搜索路径上,否则M文件不能运行。
7
例1.15 用M命令文件画出衰减振荡曲线 及其它的包络线 。t的取值范围是 解: 1.打开MATLAB命令窗口,单击 File|New|Mfile(见图1.5)打开编辑窗口;
8
2.在编辑窗口逐行写下列语句; t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b') 3.保存M文件,并保存在搜索路径上,文件名为a1.m; 4.运行M文件,在命令窗口写a1,并按Enter键,或者在编辑窗口打开菜单Tools,在选择Run。
9
图 衰减振荡曲线与包络
10
1.4.3 M函数文件 function <因变量>=<函数名>(<自变量>)
例1.16:设可逆方阵为A,编写同时求 的M函数文件。 M函数文件可以有多个因变量和多个自变量,当有多个因变量时用[]括起来。
11
解: 1.打开MATLAB命令窗口 单击File|New|Mfile打开编辑窗口; 2.在编辑窗口逐行写下列语句; function [da,a2,inva,traa]=comp4(x) %M函数文件comp4.m同时求矩阵x的四个值 da=det(x) %da为矩阵x的行列式 a2=x^ %a2为矩阵x的平方 inva=inv(x) %inva为矩阵x的逆矩阵 traa=x‘ %traa为矩阵x的转置 3.保存M函数文件在搜索路径上,文件名为comp4.m;
12
4.命令窗口执行下列语句: A=[1,2;5,8];↙ %输入矩阵A。 comp4(A)↙ %调用comp4.m函数计算矩阵A的。 da =
-2 a2 = inva = traa =
13
1.4.4 程序设计语句 for循环 表达式是一个向量, for循环的语句为: m:n,m:s:n, for i=表达式
可执行语句1 ………….. 可执行语句n end 表达式是一个向量, m:n,m:s:n, 字符串、字符串矩阵等 for循环的循环体中,可多次嵌套for和其它的结构体
14
例1.17 利用for循环求1100的整数之和。 解: 1.建立命令文件exam1.17.m。 %利用for循环求1~100的整数之和 sum=0; for i=1:100 sum=sum+i; end sum 2. 执行命令文件exam1.17.m。 exam1.17↙ sum = 5050
15
表达式一般是由逻辑运算 和关系运算及一般的运算 组成的表达式,以判断循 环要继续进行还是停止。 while循环 while循环的语句为: while 表达式 循环体语句 end 只要表达式的值非零, 即为逻辑为“真“, 程序就继续循环; 只要表达式的值为零 就停止循环。
16
例1.19 利用while循环来计算1!+2!++50!的值。 解: 1.建立命令文件exam3.m
sum=0; i=1; while i<51 prd=1; j=1; while j<=i prd=prd*j; j=j+1; end sum=sum+prd; i=i+1; end
17
disp(‘1!+2! !的和为:’) Sum 2.执行命令文件exam3.m。 exam3↙ 1!+2! !的和为: sum = 2.5613e+018
18
if-else-end分支 此分支结构有3种形式: if 表达式 执行语句 end 如果表达式的值为真,就执行语句,否则执行end后面的语句。
19
if-else-end分支 if 表达式 执行语句1 else 执行语句2 end 功能:如果表达式的值为真,就执行语句1,否则执行语句2。
20
如果所有的表达式的值都为假,就执行end后面的语句。
if-else-end分支 if 表达式1 执行语句1 elseif 表达式2 执行语句2 else 语句n end 如果表达式1的值为真, 就执行语句1,然后跳 出if执行语句; 否则判断表达式2,如果 表达式2的值为真,就执 行语句2,然后跳出if执 行语句。 否则,依此类推,一直进行下去。 如果所有的表达式的值都为假,就执行end后面的语句。
21
例1.20 编一函数计算函数值 解:1.建立M函数文件yx.m。 function y=yx(x) if x<1 y=x
22
elseif x>=1 & x<=10 y=2*x-1 elseif x>10 & x<=30 y=3*x-11 else y=sin(x)+log(x) end 2.调用M函数文件计算 result=[yx(0.2),yx(2),yx(30),yx(10*pi)]↙ result =
Similar presentations