第一章MATLAB基础知识(5-6)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB
主讲:谭宏
1.3 MATLAB语言及程序运行

• • • • •
Matlab语言结构及常用变量
命令与文件的编辑和建立 Matlab文件(程序)的执行 数据的输入/输出 Matlab的若干控制语句 Matlab编程举例
2014-12-26 Application of Matlab Language 2
调用C和FORTRAN子程序:对C和FORTRAN子程序源码 编译、连接成EXE文件后,将其扩展名改为MEX,Matlab 便可调用了。在相同路径下有同名的MEX文件和M文件时, MEX文件优先执行。
4
数据的输入/输出
(1)Matlab的数据输入是按Matlab格式进行的。可通过命令窗 口输入,也可以从M文件中读入,还可以接收其它格式数据 文件中的数据。
数据之间的分隔:同一行数据之间(分量之间),用空格"└┘“ 或逗号“ ,”分隔;行与行之间(向量之间)用分号“ ;” 隔。
在Matlab 软件中向量和矩阵的赋值方式有以下几种:
直接构造数组
在MATLAB中构造数组,只需要用空格或 逗号间隔数组元素,然后用方括号括起来 就行了。如 x=[0 2 3 6 7 8] 或 x=[0,2,3,6,7,8] 就构造了一个有6个元素的数组x。
用增量法构造数组
利用MATLAB提供的冒号运算符 (first:step:last)可以生成数组。数组中的元 素按顺序从first一直到last,增量为step。 (2:3:14) • 如果不指定增量step,则按升序生成数组, 后面的数比它前面第一个数大1。(2:13) • 如果要求生成降序排列的数组,指定一个 负的增量。 • 增量可以是整数,也可以是小数。
主函数
任何M文件中的第1个函数称为主函数。
注意:一般使主函数的名称与M文件的相同。 如果函数名与文件名不同,必须用文件名 调用函数。
子函数
M文件中可以包含一个以上的函数。文件中除 主函数以外的其他函数称为子函数,并且 它们只对主函数或同一文件中的其他子函 数可见。
3 Matlab文件(程序)的执行
• 求满足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
命令文件
• 如果要输入较多的命令,或者要经常对某些命令进 行重复的输入,则可以将这些命令按执行顺序存放 在一个m文件中,以后只要在MATLAB的命令窗口 中输入该文件的文件名,系统就会调入该文件并执 行其中的全部命令。这种形式就是MATLAB的命令 文件。 • 命令文件中的语句可以访问MATLAB工作空间的所 有变量;而在命令文件执行过程中创建的变量也会 一直保留在工作空间中,其他命令或m文件都可以 访问这些变量。 • 命令文件相当于DOS批处理文件。

机器函数
① pause 程序将暂时停在该函数所在位置,击任意
键程序继续执行 ② echo on 在命令窗口显示正在执行的程序指令 ③ cputime 给出MATLAB所耗用的总机器时间 ④ clock 给出日期及当前时间 • 指出 ① 在表达式中,函数一定要出现在等式的右边。 ② 每个函数对其自变量的个数和格式都有一定要求, 如三角函数的单位是“弧度”而不是“度”。 ③ 函数允许嵌套,如sqrt(sin(10))。 ④ 系统函数的函数名小写。注意函数名也是区分大小 写的。
命令文件:
由一系列的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 Matlab语言结构及常用变量
MATLAB的运行方式
• 1、命令行运行方式 • 演算纸式的科学计算语言 • 在MATLAB的应用中,最基本、最简 单的应用,就是在命令窗口中直接输入命令来 实现计算或绘图功能。 MATLAB命令行的一般形式为: • 变量=表达式 • 表达式
① 使用MATLAB最简单的方式是将MATLAB的命令窗口看作 计算器,通过输入数学算式直接计算。
二维数组(矩阵)x = [2.3 4 ; 5 8.01]; 矩阵的所有数据均置于一方括号内[ ]。 方式2 —— 从已有数据中获取,此时会涉及到运算
符“ : ”和逻辑运算关系,从关系运算中 建立的0-1(逻辑) 向量可用于参考建 立子矩阵。 空矩阵[]将一个0*0的矩阵赋值给变量, []也能将某些行或列从矩阵中删除。
⑤在一行中也可以写几个语句,它们之间用逗号“,” 或分号“;”隔开。 >>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的变量与函数
1、变量 • 变量就是在程序的运行过程中,其数值可以变化的量 (数据),它可以代表一个或若干个内存单元(变量 的地址)中的数据。为了对所有的变量所对应的存储 单元进行访问,需要给变量命名。
• MATLAB变量命名的规则是:
①以字母开头,后面可以跟字母、数字或下划线。 ②不超过31个字符。 ③字符间不可以留空格。 ④区分大小写。
③如果在表达式后面跟上逗号“,”或什么都不跟,运行 后会马上显示该表达式的运算结果。 ④如果一个表达式很长,可以用续行号“…”将其延续到 下一行。 >>1+2+3+4+5+…↙ %注意加号写在本行。 6+7+8+9+10↙ 则输出结果 ans= 55 如果续行号前面是数字,直接使用续行号会出现 错误,有三种解决办法,一是设法使续行号前面是一个 运算符号,二是先空一格再加续行号,三是再加一个点。
• 将上述程序存入文件fl.m,然后在命令窗口键入 >>fl↙ 显示结果为 n= 13 sum= 91 • 指出: 程序中由符号“%”开始的文字都是注释文字, 用来对程序或程序行进行注释说明,符号“%”称为 注释符,MATLAB在执行时将忽略“%”后的内容。
函数文件
① 函数文件是另一类m文件,可以像库函数一样方便 地被调用,MATLAB提供的许多工具箱,是由函数 文件组成的。 ② 对于某一类特殊问题,用户可以建立系统的函数文 件,形成专用工具箱。 ③ 函数文件的第一行有特殊的要求,它必须遵循如下 的形式: function<因变量>=<函数名>(<自变量>) ④ 其他各行都是程序运行语句,没有特别要求。 ⑤ 函数文件的文件名必须是<函数名>.m。
>>1+2+3+4+5↙ ans= 15 ② 如果在输入的表达式后面跟上分号“;”,那么运行 后就不会马上显示运算的结果,必须键入输出变量后 才能显示运算结果。用分号关闭不必要的输出会使程 序运行速度成倍甚至成百倍地提高。
>>1+2+3+4+5; ↙ 则不会马上显示运算结果,要得到运算结果,必须 >>ans↙ 则显示结果为 ans= 15
实现符号函数
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;
将上述程序存为文件sgn.m,便可以将其作为普 通的MATLAB函数来使用: >>x=4/3*pi; ↙ y=3*sgn(sin(x)) ↙ 显示结果为: y= -3
MATLAB的常用命令 MATLAB可以通过菜单对工作着的窗口进行 操作,也可以通过键盘在命令窗口输入命令进行操 作,下面给出几个常用的通用命令。 quit 关闭MATLAB exit 关闭MATLAB clc 清除MATLAB命令窗口中的所有显示内容 clear 清除工作空间中保存的所有变量
• 系统变量
变量名 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。 ⑥所谓表达式,就是用运算符号把特殊字符、函数名、 变量名等有关运算量连接起来的式子。
2、函数
• 数学函数
函数名 含义 abs(x) x的绝对值 sqrt(x) exp(x) sin(x) cos(x) asin(x) acos(x) tan(x) x的平方根 e的x次方 x的正弦 x的余弦 x的反正弦 x的反余弦 x的正切 函数名 含义 atant(x) x的反正切 cot(x) acot(x) log(x) log10(x) sinh(x) cosh(x) x的余切 x的反余切 x的自然对数 x的常用对数 双曲正弦 双曲余弦
2 命令与文件的编辑和建立
(1)命令行的ห้องสมุดไป่ตู้辑:直接在命令窗口中输入命令行并用移动光 标和一些相关操作键的方式来编辑所输入的字符串。 (2)M文件的编辑与建立:M文件可以用任何一种文本文件编 辑工具来编辑。在Matlab系统中提供有M文件编辑程序( meditor.exe),同时它又是程序调试工具。 (3)Matlab文件(程序) Matlab语句编写的磁盘文件称为M文件,其扩展名为 “.m” M文件实质上是一个ASCⅡ码的文本格式,可用任何一种文 本编辑器来编写。在Matlab中M文件在功能上分为命令文件 和函数文件。
相关文档
最新文档