当前位置:
文档之家› 第一章MATLAB基础知识(5-6)
第一章MATLAB基础知识(5-6)
命令文件
• 如果要输入较多的命令,或者要经常对某些命令进 行重复的输入,则可以将这些命令按执行顺序存放 在一个m文件中,以后只要在MATLAB的命令窗口 中输入该文件的文件名,系统就会调入该文件并执 行其中的全部命令。这种形式就是MATLAB的命令 文件。 • 命令文件中的语句可以访问MATLAB工作空间的所 有变量;而在命令文件执行过程中创建的变量也会 一直保留在工作空间中,其他命令或m文件都可以 访问这些变量。 • 命令文件相当于DOS批处理文件。
将上述程序存为文件sgn.m,便可以将其作为普 通的MATLAB函数来使用: >>x=4/3*pi; ↙ y=3*sgn(sin(x)) ↙ 显示结果为: y= -3
MATLAB的常用命令 MATLAB可以通过菜单对工作着的窗口进行 操作,也可以通过键盘在命令窗口输入命令进行操 作,下面给出几个常用的通用命令。 quit 关闭MATLAB exit 关闭MATLAB clc 清除MATLAB命令窗口中的所有显示内容 clear 清除工作空间中保存的所有变量
命令文件:
由一系列的Matlab语句组成,运行时无调用参数, 一直不间断运行至给出最终结果,其间所用到的变量均 是工作空间中的全局变量。
函数文件:
每一个函数文件可以包含一个或多个子函数。其文 件格式为:
function [output variable list] = functionName [ input variable list] 主函数语句体(语句块) function [output variable list] = subfunction1[input variable list] 子函数1语句体 function [output variable list] = subfunction2[input variable list] 子函数2语句体
Matlab的所有运行操作都只能在它的命令窗口中进行。 用户编制的M文件在使用上具有同Matlab的库函数相同的地位。 Matlab有丰富的库函数,而在形式上同用户文件是一样的,在进 行复杂的数学运算时可以直接调用。同时由于其的开放性,用户 根据需要可方便地建立和扩充新的库函数。可以说系统提供的库 函数和用户自行编写的函数地位是平等的。Matlab的库函数由基 本库函数(内部函数built-in function)和功能库函数(由TOOL BOX提供,形式主要为M文件,源代码公开)。库函数和用户文 件的执行也必须在命令窗口中以命令的方式调用才可完成。
>>1+2+3+4+5↙ ans= 15 ② 如果在输入的表达式后面跟上分号“;”,那么运行 后就不会马上显示运算的结果,必须键入输出变量后 才能显示运算结果。用分号关闭不必要的输出会使程 序运行速度成倍甚至成百倍地提高。
>>1+2+3+4+5; ↙ 则不会马上显示运算结果,要得到运算结果,必须 >>ans↙ 则显示结果为 ans= 15
• 求满足1+2+3+…n<100的最大正整数n的MATLAB程 序为: sum=0;n=0; %赋初始值 while sum<100 %判断当前的和是否小于100 n=n+1; %如果没有超过100,则对n加1 sum=sum+n; %计算最新的和 end sum=sum-n; %当循环结束时有sum>=100,故应 对sum减n n=n-1; %当循环结束时有sum>=100,故 应对n减1 n,sum %显示最大正整数n以及和sum
⑤在一行中也可以写几个语句,它们之间用逗号“,” 或分号“;”隔开。 >>A=[1,2,3.3,sin(4)],X=1966/310+1↙ 则输出结果 A= 1.0000 2.0000 3.3000, -0.7568 X= 7.3419。
2、m文件运行方式 • 所谓m文件,就是用MATLAB语言编写的、可以在 MATLAB中运行的程序。它是以普通文本格式存放 的,故可以用任何文本编辑软件进行编辑。 MATLAB提供的m文件编辑器就是程序编辑器。 • 在File菜单中选择NEW,再选择M-file,或点击新 建图标,就可以调出m文件编辑器,用户可以用此 编辑器编写m文件。 • m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function File), 两种文件的扩展名都是m。
数据之间的分隔:同一行数据之间(分量之间),用空格"└┘“ 或逗号“ ,”分隔;行与行之间(向量之间)用分号“ ;” 隔。
在Matlab 软件中向量和矩阵的赋值方式有以下几种:
直接构造数组
在MATLAB中构造数组,只需要用空格或 逗号间隔数组元素,然后用方括号括起来 就行了。如 x=[0 2 3 6 7 8] 或 x=[0,2,3,6,7,8] 就构造了一个有6个元素的数组x。
二维数组(矩阵)x = [2.3 4 ; 5 8.01]; 矩阵的所有数据均置于一方括号内[ ]。 方式2 —— 从已有数据中获取,此时会涉及到运算
符“ : ”和逻辑运算关系,从关系运算中 建立的0-1(逻辑) 向量可用于参考建 立子矩阵。 空矩阵[]将一个0*0的矩阵赋值给变量, []也能将某些行或列从矩阵中删除。
MATLAB
主讲:谭宏
1.3 MATLAB语言及程序运行
•
• • • • •
Matlab语言结构及常用变量
命令与文件的编辑和建立 Matlab文件(程序)的执行 数据的输入/输出 Matlab的若干控制语句 Matlab编程举例
2014-12-26 Application of Matlab Language 2
• 将上述程序存入文件fl.m,然后在命令窗口键入 >>fl↙ 显示结果为 n= 13 sum= 91 • 指出: 程序中由符号“%”开始的文字都是注释文字, 用来对程序或程序行进行注释说明,符号“%”称为 注释符,MATLAB在执行时将忽略“%”后的内容。
函数文件
① 函数文件是另一类m文件,可以像库函数一样方便 地被调用,MATLAB提供的许多工具箱,是由函数 文件组成的。 ② 对于某一类特殊问题,用户可以建立系统的函数文 件,形成专用工具箱。 ③ 函数文件的第一行有特殊的要求,它必须遵循如下 的形式: function<因变量>=<函数名>(<自变量>) ④ 其他各行都是程序运行语句,没有特别要求。 ⑤ 函数文件的文件名必须是<函数名>.m。
实现符号函数
1, x 0, y sgn( x) 0, x 0, 1, x 0
运算功能的函数m文件为: function y=sgn(x) %这是一个定义符号函数 y=sgn(x)的函数文件。 if x<0 y1=-1; elseif x==0 y1=0; else y1=1; end y=y1;
2 命令与文件的编辑和建立
(1)命令行的编辑:直接在命令窗口中输入命令行并用移动光 标和一些相关操作键的方式来编辑所输入的字符串。 (2)M文件的编辑与建立:M文件可以用任何一种文本文件编 辑工具来编辑。在Matlab系统中提供有M文件编辑程序( meditor.exe),同时它又是程序调试工具。 (3)Matlab文件(程序) Matlab语句编写的磁盘文件称为M文件,其扩展名为 “.m” M文件实质上是一个ASCⅡ码的文本格式,可用任何一种文 本编辑器来编写。在Matlab中M文件在功能上分为命令文件 和函数文件。
③如果在表达式后面跟上逗号“,”或什么都不跟,运行 后会马上显示该表达式的运算结果。 ④如果一个表达式很长,可以用续行号“…”将其延续到 下一行。 >>1+2+3+4+5+…↙ %注意加号写在本行。 6+7+8+9+10↙ 则输出结果 ans= 55 如果续行号前面是数字,直接使用续行号会出现 错误,有三种解决办法,一是设法使续行号前面是一个 运算符号,二是先空一格再加续行号,三是再加一个点。
• 系统变量
变量名 ans pi inf(Inf) 意义 用于存储计算结果的默认变量 圆周率π 无穷大∞,例如1/0
计算机的最小数,和1相加产生比1大的 数,在pc机上为2-52。 NaN(nan) 不定量,如0/0 i或 j 虚数单位,i=j=sqrt(-1) eps
• 指出:
①自定义变量名一般不应和系统变量同名。 ②在MATLAB中输入的内容直接决定变量的类型。 ③使用who和whos命令可以查看变量。 ④使用clear命令可以删除所有定义过的变量。如果只 是删除其中某些变量,应在clear后面指定要删除的 变量名。例如 clear a z ⑤有了变量,就可以组成表达式,也就可以对变量进 行赋值。MATLAB的赋值语句有两种形式。 ● 变量名=表达式 ● 表达式 在第一种情况下,MATLAB将右边的表达式的值赋值 给左边的变量,在第二种情况,MATLAB将表达式的值 赋值给系统变量ans。 ⑥所谓表达式,就是用运算符号把特殊字符、函数名、 变量名等有关运算量连接起来的式子。
பைடு நூலகம்
1 Matlab语言结构及常用变量
MATLAB的运行方式
• 1、命令行运行方式 • 演算纸式的科学计算语言 • 在MATLAB的应用中,最基本、最简 单的应用,就是在命令窗口中直接输入命令来 实现计算或绘图功能。 MATLAB命令行的一般形式为: • 变量=表达式 • 表达式
① 使用MATLAB最简单的方式是将MATLAB的命令窗口看作 计算器,通过输入数学算式直接计算。
用增量法构造数组
利用MATLAB提供的冒号运算符 (first:step:last)可以生成数组。数组中的元 素按顺序从first一直到last,增量为step。 (2:3:14) • 如果不指定增量step,则按升序生成数组, 后面的数比它前面第一个数大1。(2:13) • 如果要求生成降序排列的数组,指定一个 负的增量。 • 增量可以是整数,也可以是小数。