数学实验(Matlab编程基础)
一、函数文件
Matlab编程基础
·Matlab作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、矩阵运算能力和丰富的绘图功能,同时也具有和C、FORTRAN等高级语言一样进行程序设计
·利用Matlab的程序控制功能,可以将有关Matlab命令编成程序存储在一个文件中(M文件),然后在命令窗口中运行该文件,Matlab就会自动依次执行文件中的命令,直到全部命令执行完毕。
M文件
·用Matlab语言编写的程序称为M文件。
·M文件是以 .m 为扩展名。
·M文件是由若干Matlab命令组合在一起的,事实上,Matlab提供的内部函数以及各种工具箱,都是利用Matlab语言开发的M文件。用户可以结合自己的工作需要,开发自己的程序。
·M文件根据调用方式的不同可以分为两类:
-Script:脚本文件/命令文件
-Function:函数文件
M文件的创立和打开
·新建一个M文件
-点击左上角新建脚本,再点击左上角新建,就可以选择具体类型
-命令按钮(快捷键)
·打开已有的M文件
-菜单操作(File —> Open)
-命令按钮(快捷键)
-双击M文件
函数文件举例
例:给定系数a,b,c。求一元二次方程 的根。
·函数三要素:1.输入参数;2.输出参数;3.函数名和文件名
函数文件
·函数文件由 function 语句引导
function [out1,out2,...]=函数名[in1,in2,...]
-第一行为引导行,表示该M文件是函数文件
-函数名的命名规则与变量名相同(必须以字母开头)
-当输出行参多于一个时,用方括号括起来
-函数必须是一个单独的M文件
-函数文件名必须与函数名一致
-以百分号开始的语句为注释语句
·函数调用的一般格式示例:
[x1,x2]=myfun(1,0,-1)
[输出实参列表]=函数名(输入实参列表)
·说明:一旦编写好函数后,该函数基本上与内置函数的地位和使用方法相同(在同一文件夹或路径下)
子函数
·函数文件中可以含有一个或多个子函数
·子函数由 function 语句引导
·主函数必须位于最前面,子函数出现的次序任意
·子函数只能被主函数和位于同一个函数文件中的其它子函数调用
·除了用 global 定义的全局变量外,子函数中的变量都是局部变量,子函数与主函数及其它子函数之间通过输入、输出参数进行数据传递
子函数示例
二、关系运算与逻辑运算
关系运算
·关系运算符
·注意:== 与 = 的区别
逻辑运算
·逻辑运算符
例如:
A & B 等价于 and(A,B)
A | B 等价于 or(A,B)
~A 等价于 not(A)
数据输入 input
·数据的输入:input
A = input(提示信息)
例:
·如果是输入字符串,也可以使用下面的方法
A = input(提示信息,'s')
注:此时输入的字符串不要加单引号!
例:
数据输出 disp
·数据的输出:disp
disp(X)
·输出变量X的值,可以是数值矩阵或字符串
例:
数据输出 fprintf
fprintf:按指定的格式将变量的值输出到指定的文件
fprintf(fid,format,variables)
·format用来指定数据输出时采用的格式,常见的有:
%f (采用浮点数形式)
%d (整型数据)
%s (输出字符串)
·format中还可以使用一些特殊格式,如:
\n (换行)
\t (制表符)
\b (退格)
\ \ (反斜杠)
%% (百分号)
三、选择与循环语句
M文件控制流
·程序控制结构有三种:顺序结构、选择结构和循环结构。任何复杂的程序都由这三种基本结构组成。
顺序结构
·按排列顺序依次执行各条语句,直到程序的最后
选择结构
·选择结构是根据给定的条件成立或不成立,分别执行不同的语句。
·Matlab用于实现选择结构的语句有 if语句 和 switch语句 。
if条件语句
·单分支结构
·双分支结构
·多分支结构
程序示例:分段函数
switch语句
·根据表达式的不同取值,分别执行不同的语句
循环结构
for循环示例
例:一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。
while循环举例
·测试 Matlab 中 eps 值
其他流程控制语句
· break 和 continue (类似C语言)
-break 语句用于终止循环的运行,即跳出最内层循环
-continue 语句用于结束本次循环,进行下一次循环
-break 和 continue 一般与 if 语句配合使用
· return 语句用于退出正在运行的脚本或函数,通常用在函数文件中
return语句
程序设计技术
·阵列矩阵的初始化工作:一个良好的编程素养的体现
·程序出错主要为两类:
(1)格式错误,如缺 ' 或 ' 等,在运行时可检测出大多数该类错误,并指出错在哪一行
(2)算法错误,逻辑上的错误,不易查找,遇到此类错误时需耐心