一、函数文件
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)算法错误,逻辑上的错误,不易查找,遇到此类错误时需耐心