MATLAB程序设计函数文件和程序调试
- 格式:ppt
- 大小:278.50 KB
- 文档页数:24


0 MATLAB 程序设计
MATLAB提供了一个完善的程序设计语言环境,使用户能够方便地编制复杂的程序,完成各种计算。本节先介绍关系运算、逻辑运算,再介绍M-文件(即程序文件)的结构及MATLAB的程序控制流语句。
一、关系运算和逻辑运算
1.关系运算
(1)关系运算符:
< ;< = ;> ;> = ;= = ;~ =
(2)关系表达式:
用关系运算符将两个同类型的量(表达式)连接起来的式子。
【注】①关系运算本质上是标量运算,关系表达式的值是逻辑值(0-假1-真);
②当作用于两个同样大小矩阵时,则分别对两个矩阵的对应元素运算,结果是一个0-1矩阵。
例1.对向量进行关系运算。
>> A=1:5,B=5:-1:1 % 输入向量
A = 1 2 3 4 5 B = 5 4 3 2 1
>> C=(A>=4) % 对向量进行关系运算
C = 0 0 0 1 1
>> D=(A==B) % 对向量进行关系运算
D = 0 0 1 0 0
2.逻辑运算
(1)逻辑运算符:& (and,与)、| (or,或)、~ (not,非)
(2)逻辑表达式:用逻辑将两个逻辑量连接起来的式子。
【注】①逻辑运算本质上是标量运算,它将任何非零元素视为1(真);
②当作用于两个同样大小矩阵时,则分别对两个矩阵的对应元素运算,结果是一个0-1矩阵。(真值表见P27)
例2.对向量进行逻辑运算。
>> a=1:9,b=9-a
a = 1 2 3 4 5 6 7 8 9 b = 8 7 6 5 4 3 2 1 0
>> c=~(a>4) % 非运算
MATLAB
学习指南
第六章.编写与调用函数
在这一章中,我们讨论如何用多源代码文件来构造一个程序。首先,解释代码文
件在MATLAB
中如何工作。在编译语言中,例如FORTRAN
,C
,或C++
,代
码被存储在一个或多个源文件中,在进行编译的时候,这些源文件组合在一起
形成了一个单独的可执行文件。作为一种解释型语言,MATLAB
以一种更广泛的
方式来处理多个源文件。MATLAB
代码被放入带有扩展名.m
的ASCII
文件(或
称m-
文件)中。MATLAB 6
有一个集成字处理与调试应用程序,尽管会用到其
它编辑程序如vi
或emacs
,集成字处理与调试应用程序仍是编译m-
文件的首选
程序。
有两种不同的m-
文件。一种是脚本文件,它是一种最简单的文件,仅仅将
MATLAB
中的指令收集在一起。当在交互提示符处输入文件名执行脚本文件时,
MATLAB
在m-
文件内读取并执行指令,就好像指令是我们输入的。而且,似乎
我们能够削减m-
文件的内容并将削减过的内容传到MATLAB
指令窗口中。这种
m-
文件的用法将在6.1
节中给予概述。
在6.2
节中要讨论的第二种m-
文件包含一个单一函数,此函数名与此m-
文件名
相同。这种m-
文件包含一段独立的代码,这段代码具有一个明确规定的输入/
输
出界面;那就是说,传给这段代码一列空变量arg1
,arg2
,…,这段独立代码
就能够被调用,然后返回输出值out1
,out2
,…。一个函数m-
文件的第一个非注释行包含函数标头,其形式如下:
此m-
文件以返回指令结束,将执行程序返回到函数被调用的位置。或者在交互
指令提示符处或者在另一个m-
文件内,无论何时用下列指令调用函数代码,函数代码都将被执行。
输入映射到空变量:arg1=var1
,arg2=var2
,等等。在函数主体内,输出值
被分配给了变量out1
,out2
,等等。当遇到返回值时,当前值out1
,out2
,…
在函数被调用处被映射到变量outvar1
,outvar2
,…。在用可变长度自变量和
实验一 MATLAB基本操作
一、 实验目的
1、了解MATLAB应用程序环境
2、掌握MATLAB语言程序的书写格式和MATLAB语言程序的结构。
3、掌握在MATLAB应用环境下编写程序
4、掌握MATALB调试过程,帮助文件
5、掌握MATLAB语言上机步骤,了解运行一个MATLAB程序的方法。
6、本实验可在学习完教材第一章后进行。
二、 主要仪器及耗材
PC电脑,MATLAB6.5软件
三、 实验内容和步骤
1、MATLAB语言上机步骤:
(1)、进入系统
在C盘或其他盘上找到MATLAB或MATLAB6.5,然后双击其图标打开文件夹。
然后进行编辑源程序->编译->连接->执行程序->显示结果
(2)、常用命令
编辑切换(F6),编译(F9),运行(CTRL+F9),显示结果(ALT+F5)其它常用命令见“附录一”。
2、有下面的MATLAB程序。
(1)数值计算功能:如,求方程 3x4+7x3 +9x2-23=0的全部根 p=[3,7,9,0,-23]; %建立多项式系数向量
x=roots(p) %求根
(2)绘图功能:如,绘制正弦曲线和余弦曲线
x=[0:0.5:360]*pi/180;
plot(x,sin(x),x,cos(x));
(3)仿真功能:如,
请调试上述程序。
3、熟悉MATLAB环境下的编辑命令,具体见附录一。
三、实验步骤
1、静态地检查上述程序,改正程序中的错误。
2、在编辑状态下照原样键入上述程序。
3、编译并运行上述程序,记下所给出的出错信息。
4、按照事先静态检查后所改正的情况,进行纠错。
5、再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。 四、 实验注意事项
1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。
2、总结MATLAB程序的结构和书写规则。
函数调用是使主程序简明清晰的重要工具,在很大程度上简化了程序的复杂程度,也方便于不同程序使用相同模块的调用。下面主要介绍:
函数文件+调用命令文件:需单独定义一个自定义函数的M文件
这种方法很简单,定义好输入输出就可以自由调用函数。
(1)定义函数
新建一个m文件 在m文件里面第一行输入function [输出值]=(任何字母)(输入变量),输入变量和输出值个数不限,根据自己需要定义,接着定义你要实现的功能,最后保存这个m文件,注意:这个m文件的名字就是后面程序调用的名称,同时主程序和函数文件必须保存在同一个文件夹中,而且可以在函数中再嵌套其它函数。
(2)调用函数
[输出值]=函数保存的文件名(输入变量)
注意,如果输出值只有一个,可以不用中括号,如果两个以上就不必须使用,否则只输出第一个值,而且采用小括号会报错。
实例
编写一个解方程的程序:
22370xx例如求方程的根,
定义函数:
function [x,y]=equal(a,b,c)
d=b^2-4*a*c;
x=(-b+sqrt(d))/(2*a);
y=(-b-sqrt(d))/(2*a);
文件保存为equal
主程序调用:
[r1 r2]=myfunction(2,3,-7)
结果:
r1 =1.2656
r2 = -2.7656
还是上面的例子,实现函数中调用函数:
定义函数1:
function [testfun]=supple(j)
testfun =j+5;
保存文件为supple(此处不一定要和函数名相同)
定义函数2:
function [x,y]=equal(a,b,c)
c=supple(c); %调用了一个函数
d=b^2-4*a*c;
x=(-b+sqrt(d))/(2*a);
y=(-b-sqrt(d))/(2*a);
文件保存为equal
主程序调用:
[r1 r2]=myfunction(2,3,-12) %(将c有-7改为-12)