第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写

Slides:



Advertisements
Similar presentations
◎ 標準函數 標準函數庫中,提供了許多不同功能的函數,而這些函數 的原型宣告以及使用函數相關的定義,依照相關函數的分 類,分別定義在不同的標頭檔之中。 標準函數庫中,提供了許多不同功能的函數,而這些函數 的原型宣告以及使用函數相關的定義,依照相關函數的分 類,分別定義在不同的標頭檔之中。 本來呼叫使用標準函數庫裡的函數,也就是使用模組裡的.
Advertisements

說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
SCILAB第二章 二維平面繪圖 撰文者: 1.中央大氣科學系 楊善文 2. (如對本文有貢獻者,記得在此留名)
—— matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位
黃聰明 臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 臺灣師範大學數學系.
第四章 MATLAB编程基础 4.1 概述 4.2 流程控制 4.3 脚本文件 4.4 函数文件 4.5 M文件调试 4.6 M文件性能分析
MATLAB小结、 经典迭代法、CG.
Introduction to Matlab
Matlab教學 Speaker:林昱志 Date:2012/10/18.
1012 MATLAB 教學 彭奕翔 2013/02/27.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
MATLAB程序设计基础 MATLAB的图形处理.
——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
2010年桂林理工大学数学建模竞赛暑期培训班 MATLAB编程入门培训课程
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
第2章 Fortran程序设计基础.
MATLAB介紹.
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
Matlab教學 Speaker:林昱志 Date:2012/10/25.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
第2章 MATLAB矩阵及其运算 2. 1 变量和数据操作 2. 2 MATLAB矩阵 2. 3 MATLAB运算 2. 4 矩阵分析 2
大学数学实验 欢迎进入 MATLAB 世界 作者 薛长虹 数学系 地址:
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
第4章 MATLAB绘图 4.1 MATLAB二维曲线绘图 基本绘图指令 1.plot(Y) 功能:画一条或多条折线图.
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
Master Degree Students Oct, 2006
第4章 MATLAB文件操作 4.1 文件的打开与关闭 4.2 文件的读写操作 4.3 数据文件定位.
程式設計 博碩文化出版發行.
引 言.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
第三章 MATLAB图形系统 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制
Introduction to MATLAB
数学建模与数学实验 MATLAB作图.
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
§ 9.1常用数学软件简介及MATLAB基础知识
研讨课4 文件操作.
MATLAB 程式設計入門篇 初探MATLAB
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
1 在平面上畫出角度分別是-45°,210°,675°的角。 (1) (2) (3)
第6章 常用内部过程 作为一门古老而又年轻的高级计算机语言,Fortran提供了大量的内部过程供程序员在编程过程中使用。并且随着新标准的推出,Fortran语言的内部过程还在继续扩展,能够提供更多的常用功能,大大减轻了程序员的重复性劳动。本节主要介绍常用内部过程的基本知识。
MATLAB 入门教程.
二元一次聯立方程式 代入消去法 加減消去法 自我評量.
数学实验与MATLAB简介  课程的背景和基本要求 MATLAB 使用简介 MATLAB 常用函数介绍 宝石切割问题实验.
课题:已知三角函数值求角 sina tana y P 。 x P’ 。.
MATLAB 程式設計入門篇 二維平面繪圖 改自張智星講義
第一章 函数与极限 第一节 函 数 一、函数的概念 二、函数的表示法 三、分段函数 四、反函数 五、初等函数 六、函数的基本性态
MATLAB 程式設計入門篇 三維立體繪圖 (part1)
三維繪圖 Helix t = 0:pi/50:10*pi; % linspace(0,10*pi,500); figure plot3(sin(t),cos(t),t) grid on axis square Remark: zlabel, view, surf.
实验教学 MATLAB在行列式和矩阵中的应用 授课教师:杨梦云.
MATLAB 程式設計入門篇 初探MATLAB
第二章 三角函數 2-5 三角函數的圖形.
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
JX-300X - SCX语言 2019年4月30日.
第二节 MATLAB 图形处理 内容: §1 二维图形显示 §2 图形可视编辑工具 §3 三维图形显示 §4 视角变换与三视图
西南科技大学网络教育系列课程 数学软件 数学软件 第3讲 MATLAB数组与运算 主讲教师: 鲜大权 副教授 西南科技大学理学院数学系.
1.5 Matlab绘图 plot(y) plot(x,y)
第7章 MATLAB工程计算.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
三角比的恆等式 .
幂的乘方.
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
Presentation transcript:

第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写 2.5 基本数学函数 2.6 基本绘图方法 2.7 M文件及程序调试

2.1 变量及其赋值 2.1.1 标识符与数 2.1.2 矩阵及其元素的赋值 2.1 变量及其赋值 2.1.1 标识符与数 标识符是标志变量名、常量名、函数名和文件名的字符串的总称。在MTLAB中,变量和常量的标识符最长允许19个字符。字符包括全部的英文字母(大小写52个)、阿拉伯数字和下划线等符号,标识符中第一个字符必须是英文字母。 2.1.2 矩阵及其元素的赋值 赋值就是把数赋予代表常量或变量的标识符。在MATLAB中,变量都代表矩阵。 列矢量可被当作只有一列的矩阵;行矢量也可被当作只有一个行的矩阵;标量应看作 11阶的矩阵。赋值语句的一般形式为: 变量=表达式(或数) 1.赋值要求 在输入矩阵时,应遵循以下规则: ·整个矩阵的值应放在方括号中; ·同一行中各元素之间以逗号“,”或空格分开; ·不同行的元素以分号“;”隔开。 2.变量的元素的标注

在MATLAB中,变量的元素(即矩阵元)用圆括号“( )”中的数字(也称为下标) 来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵由两个下标数构成, 以逗号分开,对三维矩阵则由三个下标数构成。 3.赋值技巧 (1) 利用冒号“:”给全行的元素赋值 (2) 利用行、列标注构成新的矩阵 4.特殊矩阵和数组 (1)单位矩阵函数eye() 函数功能:产生对主角线元素为1,其它元素为0的单位矩阵。eye()的调用格式如下: A=eye(n) 返回一个nn阶单位矩阵; A=eye(m , n) 返回一个mn阶单位矩阵,或用A=eye([m , n]); (2) zeros函数、ones函数、rand以及randn函数 A=zeros(n) 返回一个nn阶零矩阵; A=zeros(m , n) 返回一个mn阶零矩阵;

(3)linspace函数和logspace函数 y=linspace(a,b) 产生一个行矢量y,该矢量把a和b间的数等分100份而得到。 y=linspace(a,b,n) 产生一个行矢量y,该矢量把a和b间的数等分n份而得到。 5.MATLAB内部特殊变量和常数 ⑴变量ans:临时变量,通常指示当前的答案。 ⑵常数eps:表示浮点相对精度;其值是从1.0到下一个最大浮点数之间的差值。变量值作为一些MATLAB函数计算的相对浮点精度,按IEEE标准,esp= 2-52近似为2.2204e-016。 ⑶常数realmax:表示最大正浮点数;任何大于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmax略小于21024 ,近似为1.7977e+308。 ⑷常数realmin:表示最小正浮点数;任何小于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmin略小于2-1024 ,近似为2.2251e-308。 ⑸常数pi:表示圆周率π =3.1415926535897.....。表达式4*atan(1)和imag(log(-1))产生相同的值π。

⑹常数Inf:代表正无穷大,一般被0除或溢出则产生无穷大结果。如2/0,2^10000均产生结果:Inf;而log(0)产生结果:-Inf。 ⑺虚数单位i,j:表示复数虚部单位,相当于 。 ⑻NaN:表示非数值。如当Inf-Inf,Inf/Inf, 0*Inf,0/0均产生该结果。 6.复数的赋值方式 MATLAB的每一个元素都可以是复数,实数是复数的特例。复数的虚数部分用i或j表示。对复数矩阵有两种赋值方法: (1)可将矩阵元逐个赋予复数 (2)将矩阵的实部和虚部分别赋值: 7.变量检查 在程序调试或变量的赋值过程,往往需要检查工作空间中的变量、变量的阶数以及变量赋值内容。在检查变量及其阶数等内容时,既可用工作空间窗口,也可在命令窗口使用who或whos命令来完成检查。当查看某变量的赋值情况,可在命令窗口直接键入该变量名回车即可。

2.2 运算符与复数运算 算术运算符:进行数值计算。 关系运算符:比较两个操作数的大小。 2.2.1 算术运算符 逻辑运算符:进行逻辑运算。 2.2 运算符与复数运算 算术运算符:进行数值计算。 关系运算符:比较两个操作数的大小。 逻辑运算符:进行逻辑运算。 2.2.1 算术运算符 (1)矩阵加减法“±”:A±B  功能:两矩阵对应元素相加减。因此,A和B两矩阵必须有相同的大小,或其中之一 为标量,标量可以与任意大小的矩阵相加。 (2)矩阵相乘“*”:A*B 功能:C =A*B为两矩阵线性代数的乘积,即 (3) 矩阵元素相乘“.*”:A.*B 功能:矩阵A和B的对应元素相乘;因此,A和B必须大小相同,或其中之一为标量。 (4)矩阵右除“B/A”与左除“A\B” 如果A为一非奇异矩阵,则B/A与A\B可通过A的逆矩阵与B矩阵得到:B/A=B*inv(A); A\B=inv(A)*B。

(5)矩阵元素右除“A./B”与左除“A.\B” 矩阵元素右除“A./B”表示矩阵元素A(i,j)/B(i,j);矩阵元素左除“A./B” 表示矩阵B(i,j)/A(i,j),因此,A和B必须大小相同,或者其中之一为标量。 (6)矩阵幂“^”:X^p 如果p为标量,表示X的p次幂;如果X为标量,而p为矩阵,X^p用特征值和特征特征 向量表示X的矩阵p次幂。注意X和p不能同时为矩阵,但必须是方阵。 (7)矩阵元素幂“.^”:A.^B A.^B表示矩阵元素A(i,j)的B(i,j)次幂,A与B必须大小相同,或者其中之一为标量。 (8) 矩阵转置“ ’ ” A’表示矩阵A的线性代数转置。对于复矩阵,表示复共轭转置。 (9) 非共轭转置“ .’ ” A.’表示非共轭转置;对于复矩阵,不包括共轭。 (10)冒号操作符“:” 冒号是一个非常有用的操作符;可以产生向量、数组下标以及for循环。

2.2.2 关系操作符 2.2.3 逻辑操作符 关系运算是指两个元素之间数值的比较。MATLAB所提供的关系操作符如表所示。 关系比较结果只有两种可能,即1或0。1表示关系式这“真”,即关系式正确;0表示该关系为“假”,即它不成立。 2.2.3 逻辑操作符 通常逻辑变量只能取0(假)和1(真)两个值。逻辑量的基本运算除“与(&)”、“或(|)”和“非(~)”外,有时也包括“异或(xor)”,不过“异或”可以用3种基本运算组合而成。两个逻辑量经过这4种逻辑运算后的输出仍然是逻辑量。

2.2.4 关系与逻辑函数 其他关系与逻辑函数 测试函数

2.3 控制流 2.2.5复数运算 2.3.1 If语句 1.MATLAB中所有的运算符和函数都对复数有效。 2.复数的共轭可利用函数“conj”来完成 2.3 控制流 2.3.1 If语句 if语句称为条件执行语句。 其关键字包括if、else、elseif和end。 格式之一:   if 表达式      语句组A    end 其工作流程如图所示。 注意:语句中的end是决不可少的,没有它,在逻辑表达式为0时,就找不到继续执行程序的入口。

格式之二: if 表达式   语句组A  else   语句组B  end 其工作流程如图所示。

格式之三: if 表达式1   语句组A  elseif 表达式2   语句组B  else 语句组C end 工作流程原理如图2.3所示。

2.3.2 Switch语句 switch语句,也是条件选择结构。其关键字包括switch、case、otherwise和end。它主 要用于有选择性的程序设计,实现程序的多分支选择。其调格式为: switch 选择表达式   case 情况表达式1     语句组1   case 情况表达式2     语句组2    ………   otherwise 语句组n end

2.3.3 While语句 while语句为条件循环语句,循环执行一组语句,执行次数不确定,而是决定于一些逻辑条件。其关键字包括while、end、break等。 基本调用格式: while 表达式    语句A end

2.3.4 for语句 for语句也是循环语句,但与while语句不同的是,它循环执行一组语句的执行次数是 确定。其关键字包括for、end、break等。调用的基本格式如下: for index=初值:增量:终值    语句组A end 功能:把语句组A(亦称为循环体)反复执行N次。循环次数N为: N=1+(终值-初值)/增量 在每次执行时程序中的index的值按“增量”增加。 注意: (1)For循环不能用For循环内重新赋值循环变量n来终止。 (2)在For循环内接受任何有效的MATLAB数组。 (3) for循环可按需要嵌套。与其它的编程语言类似,for语句可以嵌套使用。 (4) 当有一个等效的数组方法来解给定的问题时,应避免用For循环。 (5) 为了提高处理的速度,在For循环(While循环)被执行之前,应预先分配数组。

2.4 数据的输入输出及文件的读写 2.4.1 交互输入与输出命令和函数 1.键盘输入命令input 格式一:u=input(‘提示内容’) 2.4 数据的输入输出及文件的读写 2.4.1 交互输入与输出命令和函数 1.键盘输入命令input 格式一:u=input(‘提示内容’) 格式二: u=input(‘提示内容’,‘s’) 在屏幕上显示提示内容,等待从键盘输入,将输入的符号以字符串赋给文本(字符串)变量u。 2. 菜单输入命令menu 功能:产生一个供用户输入的选择菜单。 格式: k=menu(‘title’,‘选项1’,‘选项2’,,‘选项n’) 显示以字符串变量‘title’为标题的菜单,选择为字符变量:‘选项1’,‘选项2’,, ‘选项n’,并将所输入的值赋给变量k。 3.暂停执行命令pause pause 常用在M文件中,用于停止执行,直接按任意键继续执行; pause(n)  暂停执行n秒后继续执行; pause on  允许一系列pause命令暂停程序执行; pause off 保证任何pause命令和pausea(n)语句不能暂停程序执行。

2.4.2 文件输入输出命令与函数 4.显示命令 disp 功能:显示指定的变量或变量的内容。 调用格式: disp(变量名) 5.按格式要求输出变量命令sprintf 功能:按格式要求输出变量 调用格式: sprintf(显示格式,变量)。 2.4.2 文件输入输出命令与函数 1.save 功能:用以将工作空间中的变量保存到磁盘上。 格式一: save 将工作空间中的所有变量保存在一个名为:“matlab.mat”的二进制格式文件中,该文件可通过load命令来重新装入工作空间。 格式二: save 文件名 变量名 将工作空间中指定的“变量名”保存在指定“文件名.mat”的二进制格式文件中。 格式三: save 文件名 选项 使用“选项”指定ASCII文件格式,将工作实间中所有变量保存到“文件名”所指定的文件中。

2. load: 功能:从磁盘文件中重新调入变量内容到工作空间。 格式一: load   将保存在“matlab.mat”文件中的所有变量调入到工作空间。 格式二: load  文件名 从“文件名 . mat”中调入变量,可给出全部路径。 3. fopen 功能:打开文件或获得打开文件信息。 格式一: f_id=fopen(文件名,’允许模式’) 以’允许模式’指定的模式打开“文件名”所指定的文件,返回文件标识f_id; ’允许模式’ 可以是下列几个字符串之一: ‘r’ : 打开文件进行读(缺省型式); ‘w’ : 删除己存在文件中的内容或生成一个新文件,打开进行写操作; ‘a’ :打开一个己存在的文件或生成并打开一个新文件,进行写操作,在文件末尾添加 数据;

格式二: [f_id , message]=fopen (文件名,’允许模式’,格式) 功能:用指定的数据“格式”打开数据文件,返回文件标识和打开文件信息两个参数。 “数据格式”。 如果fopen成功打开文件,则返回文件标识f_id,message内容为空,如果不能成功打开,则返回f_id值为-1,message中返回一个有助于判断错误类型的字符串。 有三个值是预先定义的,不能打开或关闭: 0:表示标准输入,一直处于打开读入状态。 1:表示标准输出,一直处于打开追加状态。 2:表示标准错误,一直处于打开追加状态。 4.fclose 功能:关闭一个或多个已打开的文件。 格式一: status=fclose(f_id) 关闭指定文件,返回0表示成功,返回-1表示失败。 格式二  status=fclose(‘all’) 功能: 关闭所有文件,返回0表示成功,返回-1表示失败。

5.fread 格式一: [A, count]=fread(f_id, size, ’精度’) 功能:从指定文件中读入二进制数据,将数据写入到矩阵A中;可选输出count返回成功读入元素个数;f_id为整数文件标识,其值由fopen函数得到;可选参数size确定读入多少数据,如果不指定参数size,则一直读到文件结束为止,参数size合法选择有: n :读入n个元素到一个列向量; inf :读到文件结束,返回一个与文件数据元素相同的列向量; [m, n]:读入足够元素填充一个m×n阶矩阵,填充按列顺序进行,如果文件不够大,则填充0。 ‘精度’表示读入数据精度的字符串,控制读入每个值的数据位,这些位可以是整数型、浮点值或字符。 格式二: [A, count]=fread(f_id, size,’精度’,skip)   可选参数skip,指定每次读操作跳过字节数,如果’精度’是某一种位格式,则每次读操作将跳过相应位数。 6.fwrite 功能:向文件中写入二进制数据。 格式一: count=fwrite (f_id, A,’精度’) 将矩阵A中元素写入指定文件,将其值转换为指定的精度。 格式二: count=fwrite(f_id,A,’精度’,skip) 可用参数skip指定每次写操作跳过指定字节。

7.fscanf 格式一: A=fscanf (f_id, ’格式’) 从由f_id所指定的文件中读入所有数据,并根据’格式’字符串进行转换,并返回给矩阵A,’格式’字符串指定被读入数据的格式。 格式二: [A, count]=fscanf(f_id,’格式’,size) 读入由size指定数量的数据,并根据’格式’字符进行转换,并返回给矩阵A,同时返回成功读入的数据数量count。 8.fprintf 格式一: count=fprintf(f_id,’格式’,A,…)   将矩阵A或其它矩阵的实部数据以’格式’字符串指定的形式进行规格化,并将其写入指定的文件中,其返回值为写入数据的数量。 格式二: fprintf(’格式’,A,…) 将A或其它值以’格式’给定的形式输出到标准输出-显示屏幕上。

9.fgets 功能:以字符串形式返回文件中的下一行内容,包含行结束符。 格式一: ctr=fgets(f_id) 返回文件标识为f_id的文件中的下一行内容,如果遇到文件结尾(EOF),则返回-1,所返回的字符串中包括文本结束符,用fgetl( )则返回的字符串中不包括行结束符。 格式二: str=fgest((f_id,n) 返回下行中最多n个字符,在遇到行结束符或文件结束(EOF)时不追加字符。 10.fgetl 功能:以字符串形式返回文件中的下一行内容,但不含行结束符。 格式: str=fgetl(f_id) 返回文件标识为文件中的下一行内容,如果遇到文件结尾,则返回-1,所返回的字符串中不包括行结束符。

11.ferror 功能:查询MATLAB关于文件输入、输出操作的错误。   messgeg=ferror(f_id)  将标识为f_id的已打开文件的错误信息返回给message变量。 12.feof 功能:测试文件结尾(EOF)。 格式: eoftest=feof(f_id)   测试指定文件是否设置了EOF;如果返回1则表示设置了EOF指示器,返回0未设置。

13.imread 功能: 从图像文件中读入图像 格式一: A=imread(文件名,’图像文件格式’) 将文件名指定的图像文件读入A,A为无符号8位整数(uint8)。如果文件为灰度图像, 则A为一个二维数组;如果文件是一个真彩色RGB图像,则A是一个三维数组(m*n*3)。 格式二:[A, map]=imread(文件名,’图像文件格式’) 读入索引图像到矩阵A,其调色板值返回给map,A为无符号8位整数(uint8),map 为双精度浮点数,其值在[0,1]范围内。 14.imwrite :将图像写入图像文件中。 格式一: imwrite(A, 文件名,’图像文件格式’) 格式二: imwrite(A,map,文件名,’图像文件格式’) 将A中的索引图像及其相关的调色板map存放到指定文件。调色板map必须是MATLAB 的有效调色板。注意大多数图像文件格式不支持大于256条的调色板。 15.imfinfo 功能:返回图像文件信息 格式: info=imfinfo(文件名,’图像文件格式’) 返回一个图像信息结构,或结构数组。‘图像文件格式’与imread函数的一样。

16.auread 功能: 读入声音文件(.au) 格式一: Y=auread (aufile)   读入由文件名aufile指定的声音文件,返回采样数据给变量Y。如果文件名中没有扩 展名,则自动在其后加上.au作为扩展名。幅值在[-1,1]范围内。支持多通道数据格式: 8-bit mu-law;或 8-, 16-, 32-bit linear。 格式二: [Y, Fs,bits]=auread(aufile) 返回采样率Fs(Hz)以及文件中每数据编码时所用的位数(bits)。 17.Auwrite 功能:向文件(. au)中写入声音数据。 格式一: auwrite(A, ‘文件名. Au’ ) 向’文件名. au’指定的文件中写入声音数据,数据在A中以一个通道一列的方式安排, 幅值超过[-1, +1]范围时,在写入前先进行剪裁处理。 格式二: auwrite(A, Fs, ‘文件名. au’ ) 用指定的数据采样Fs(Hz) 写入声音数据。

18.wavread 功能: 读入声音文件(.wav) 格式一: A=wavread (‘文件名.wav’) 读入由’文件名’指定的Microsoft声音文件(. wav),返回采样数据给变量A。如果文件 名中没有扩展名,则自动在其后加上.wav作为扩展名,幅值在[-1,1]范围内。 格式二: [A, Fs, bits]=wavread(‘文件名.wav’) 返回采样率Fs(Hz)以及文件中每数据编码时所用的位数(bits)。 19.wavwrite 功能:向Microsoft WAV声音文件(.wav)中写入声音数据 格式一: wavwrite (A, ‘文件名.wav’) 向指定的文件中写入声音数据,数据在A中以一个通道一列的方式安排,幅值超过 [-1, +1]范围时,在写入前先进行剪裁处理。 格式二: wavwrite(A, Fs, ‘文件名.wav’) 用指定的数据采样Fs(Hz) 写入声音数据。

2.5 基本数学函数 2.5.1 三角函数 1.正弦sin函数与反正弦函数asin函数 格式:A=sin(X) 2.5 基本数学函数 2.5.1 三角函数 1.正弦sin函数与反正弦函数asin函数 格式:A=sin(X) 功能:对矩阵或数组X的每个元素求正弦值,所有角度用弧度表示。 格式:X=asin(A) 功能:对于A的元素求反正弦值,结果为弧度。 2.双曲正弦sinh函数与反双曲正弦函数asinh函数 格式:A=sinh(X) 功能:对矩阵或数组X的每个元素求双曲正弦值。 格式:X=asinh(A) 功能:对于A的元素求反双曲正弦值。

3.余弦cos函数与反余弦函数acos函数 格式:A=cos(X) 功能:对矩阵或数组X的每个元素求余弦值,所有角度用弧度表示。 格式:X=acos(A) 功能:对于A的元素求反余弦值,结果为弧度。 4.双曲余弦cosh函数与反双曲余弦函数acosh函数 格式:A=cosh(X) 功能:对矩阵或数组X的元素求双曲余弦值。 格式:X=acosh(A) 功能:对于A的元素求反双曲余弦值。 5.正切tan函数与反正切函数atan函数 格式:A=tan(X) 功能:对矩阵或数组X的每个元素求正切值,所有角度用弧度表示。 格式:X=atan(A) 功能:对于A的每个元素求反正切值,结果为弧度。

6.四象限反正切atan2函数 格式:P=atan2(Y,X) 功能:四象限反正切函数。返回大小与Y、X相同的矩阵或数组,由Y和X对应元素的 实部求反正切值得到,其中虚部忽略。 7.双曲正切tanh函数与反双曲正切atanh函数 格式:A=tanh(X) 功能:对于X的每个元素求双曲正切值。 格式:X=atanh(A) 功能:对于A的每个元素求反双曲正切值。 8.正割sec函数与反正割asec函数 格式:A=sec(X) 功能:对X的每个元素求正割。 格式:X=asec(A) 功能:返回A的每个元素的反正割值。

9.双曲正割sec函数与反双曲正割asec函数 格式:A=sech(X) 功能:对X的每个元素求双曲正割。 格式:X=asech(A) 功能:返回A的每个元素的反双曲正割值。 10.余割csc函数与反余割acsc函数 格式:A=csc(X) 功能:对X的每个元素求正割。 格式:X=achc(A) 功能:返回A的每个元素的反正割值。

11.双曲余割csch函数与反双曲余割asch函数 格式:A=csch(X) 功能:对X的每个元素求双曲余割。 格式:X=acsch(A) 功能:返回A的每个元素的反双曲余割值。 12.余切cot函数与反余切acot函数 格式:A=cot(X) 功能:对X的每个元素求余切。 格式:X=acot(A) 功能:返回A的每个元素的反余切值。 13.双曲余切coth函数与反双曲余切函数acoth函数 格式:A=coth(X) 功能:对X的每个元素求双曲余切。 格式:X=acoth(A) 功能:返回A的每个元素的反双曲余切值

2.5.2 指数、对数、幂运算 1.指数exp函数与自然对数log函数 格式:A=exp(X) 功能:返回X每个元素的以e为底的指数值。 格式:X=log(A) 功能:返回A的每个元素的自然对数。 2.常用对数logl0函数 格式:X=logl0(A) 功能:对A的每个元素求常用对数。 3. log2函数和幂函数pow2 格式:X=log2(A) 功能:对A的每个元素计算其以2为底的对数。 格式:A=pow2(X) 功能:A的元素为2对X每个元素求幂得到。 4.平方根函数 格式:A=sqrt(X) 功能:返回对数组X每个元素求平方根的数组,如果元素为负或复数,则结果为复数。

2.5.3 复数的基本运算 1.求复数实部函数real 格式:X=real(Z) 功能:返回复数Z的每个元素的实部。 2.5.3 复数的基本运算 1.求复数实部函数real 格式:X=real(Z) 功能:返回复数Z的每个元素的实部。 2.求复数的虚部函数imag 格式:Y=imag(Z) 功能:返回复数Z的每个元素的虚部。 3.绝对值和复数模函数abs 格式:A=abs(Z) 功能:返回Z每个元素的绝对值。如果Z的元素是复数,则返回其模。 4.求相角函数angle 格式:P=angle(Z) 功能:对Z的每个元素求相角。 5.共轭函数conj 格式:C=conj(Z) 功能:对Z的每个元素求共轭复数。

2.5.4 数据的取舍与保留 1.向0方向取整数函数fix 格式:I=fix(X) 2.5.4 数据的取舍与保留 1.向0方向取整数函数fix 格式:I=fix(X) 返回X中每个元素的最靠近零的整数。若X为复数,则分别对X的实部和虚部取整。 2.向-∞方向取整数函数floor 格式:I=floor(X) 返回X中每个元素的最靠近该元素的最小整数。若X为复数,则分别对X的实部和虚部取最小整。 3.向-∞方向取整数函数ceil 格式:I=ceil(X) 返回X中每个元素的最靠近该元素的最大整数。若X为复数,则分别对X的实部和虚部取最大整数。 4.四舍五入取整数函数round 格式:I=round(X) 返回X中每个元素的最靠近该元素的整数。若X为复数,则分别对X的实部和虚部取整数。

5.模数余函数mod 格式:M=mod(X,Y) 返回X关于Y的余数。 6.除后余数函数rem 格式:M=rem(X,Y) 功能:返回X关于Y的余数。 7.符号函数sign 格式:s=sign(X) 如果X大于零,则返回1;如果X等于零,则返回0;如果X小于零,则返回-1。 如果X为复数,则算法为:SIGN(X) = X ./ ABS(X)。

2.6 基本绘图方法 2.6.1 图形窗口的控制 在MATLAB中,图形的绘制必须在图形窗中进行。通常,只要执行了任意一种绘图命令,图形窗口(Figure)就会自动产生。此时,所生成的图形窗口称为当前图形窗,绘图命令所绘制的图形将在当前图形窗中完成。 1.figure命令 格式:figure 或 figure(N) 功能:创建一个图形窗口。使编号为N的图形窗口成为当前图形窗口,即图形窗口处于可视状态。如果窗口N不存在,则将创建一个句柄为N的图形窗口。 2.clf命令:清除当前图形窗口中的所有的内容。 格式:clf 3.close命令:关闭图形窗口 格式一:close 或 close (N) 关闭当前图形窗口或指定编号N的图形窗口。 格式二:close all 关闭所有图形窗口。

4.hold命令 格式:hold on (off) 功能:保持当前图形窗的内容,或取消hold on的命令功能,恢复系统默认状态。通常,MATLAB在执行某一绘图命令时,系统会自动将当前图形窗口中的内容清除,然后再绘制。hold命令的功能就是保持当前图形窗的内容,使后续绘制函数仍可该图形窗口中完成绘图,实现一张图中绘制多个图形。若再键入hold命令就解除冻结。这种拉线开关式的控制有时会造成混乱,可以用hold on和hold off命令来得到确定的状态。 5.subplot命令 功能:将一个图形窗口划分为多个子图形窗口 格式:subplot(m,n,p) 或  subplot(nmp) 将图形窗口分成nm个子图形窗口,并选择第p个子图形窗口作为当前图形窗口,供绘制函数作图使用。

2.6 基本绘图方法 2.6.2 二维图形的绘制 1. 二维图形绘制命令plot 2.6 基本绘图方法 2.6.2 二维图形的绘制 1. 二维图形绘制命令plot MATALB为用户提供了一个基本的二维曲线绘图函数plot。 格式一: plot(y)--输入一个数组的情况 功能:如果y是一个数组,函数plot(y)给出线性直角坐标的二维图,该二维图以y中元素的下标作为X坐标,y中元素的值作为Y坐标,一一对应画在X—Y坐标平面图上,而且将各点以直线相连。若y的元素是复数,则plot(y)等价于plot(real(y),imag(y)),其中real(y)是y的实部,imag(y)是y的虚部。若y是矩阵,就按列绘制曲线,曲线的条数等于y矩阵的列数。 格式二: plot(x,y)--输入两个数组的情况 功能:绘出以x元素为横坐标、y元素为纵坐标的曲线。数组x和y必须具有相同长度。

2.线型、标记符号及颜色的设置 为了设定线型、颜色以及标记符号,用户只需在plot的输入变量组后面,加一个引号,在引号内部放入线型、颜色以及标记符号的标志符即可完成。 格式一: plot(y,’字符串’) 格式二:plot(x, y,’字符串’) 3.图形的标注、网格以及图例说明 (1) 添加图形标题命令title 格式:title(‘string’)  功能:在当前坐标系的顶部加一个文本串string,作为该图形的标题。 (2) 添加坐标轴标志函数xlabe、 ylabel、zlabel 格式:xlabel(‘text’) 或 ylabel(‘text’) 或zlabel(‘text’) 功能:给当前X轴或Y轴或Z轴标注文本标注。

(3)设置网格线命令grid 格式:grid on(off) 功能:对当前坐标图加上网格线或撤消网格线。若直接调用grid命令即可设置或撤消 网格线。 (4)图形标注函数legend 格式:legend( string1, string2, string3, ….) 功能:在当前图中添加图例。 格式:Legend off 功能:撤消当前坐标图上的图例。 4.坐标轴的形式与刻度   (1)设置坐标轴函数axis 格式一:axis([xmin,xmax,ymin,ymax]) 功能:对当前二维图形对象的X轴和Y轴进行标定。 格式二:axis([xmin xmax ymin ymax zmin zmax]) 功能:对当前三维图形对象的X、Y和Z轴进行标定。 格式三:axis off(on) 功能:使坐标轴、刻度、标注和说明变为不显示(显示)状态。 格式四:axis(‘manual’) 功能:将冻结当前的坐标比例,以后的图形均以此比例绘出。

(2)对数坐标轴命令semilogx、 semilogy、loglog 功能:在X轴上采用常用对数来进行标定。该命令的调用格式与plot函数的调用格式相同。 格式:semilogy(…..) 功能:在Y轴上采用常用对数来进行标定。该命令的调用格式与plot函数的调用格式相同。 (3)极坐标函数polar 格式:polar(theta, rho) 功能:绘制极角为theta, 极径为rho的极坐标图形。 格式:polar(theta,rho,s) 功能:绘制由S指定样式、颜色的极坐标图形。 (4)图形边框控制命令box 格式:box on(off) 对所绘制的图形添加图形边框(默认状态),或关闭图形边框。

5.二维图形其它的相关函数命令 (1)获取函数ginput 格式:[X,Y]=ginput(N) 功能:从当前的坐标图上获得N个点的数据,并返回这N个点的相应X、Y坐标向量。 指针可以由鼠标或键盘上的除回车以外的任意键来进行输入,回车键是用来在N个数 据点输完以前强行停止输入的。 (2)图形填充函数fill 格式:fill( X, Y, C) 功能:填充二维多边形,多边形由向量X,Y来定义,填充的色由C来确定。多边形的顶 点是由一组X,Y元素来确定,必要时应组成一个闭合的曲线。C可以从’r’,’g’,’b’,’c’,’m’,’k’ 选出一种色填充也可以是一个GRB向量[r,g,b],用它来确定所填充的色。

2.6.3 多条曲线的绘制 2.6.4 复数的绘图 在MATALB中,通常,在一张图上绘制多条曲线有以下4种方法。 2.6.3 多条曲线的绘制 在MATALB中,通常,在一张图上绘制多条曲线有以下4种方法。 1.使用plot(t, [y1 ,y2, …])命令 该语句中t是向量,y=[y1,y2…]是矩阵,若t是列向量,则y的列(行)长应与t长度相同。 Y的列(行)数就是曲线的条数。 2. 使用hold命令 在画完前一张图形后,用hold命令保持住该图形窗口中的内容,再画下一条曲线。 3. 利用plot(x1, y1, x2, y2, …., xn, yn)语句 在该语句中,x1, y1, x2, y2, …., xn, yn等分别为向量对。每一对X-Y向量可以绘出一条图线,这样就可以在一张图上画出多图线,每一组向量对的长度可以不同,在其后面都可加线型标志符。 4.使用plotyy命令: plotyy(x1, y1, x2, y2) 它设有两个坐标,左纵坐标对应y1,右纵坐标对应y2,以便绘制两个y尺度不同 的变量,但x仍用同一个比例尺。 2.6.4 复数的绘图 当plot(z)中的z为复数变量时(即含有非零的虚部),MATLAB把复数的实部作为横坐标、虚部作为纵坐标绘图,即相当于plot(real(z),imag(z))。

2.6.5 三维曲线和曲面 1.空间曲线绘制函数plot3( ) 格式一:plot3(x,y,z) 2.6.5 三维曲线和曲面 1.空间曲线绘制函数plot3( ) 格式一:plot3(x,y,z) 功能:若x、y、z为相同长度的向量,则根据向量x、y、z绘制空间三维曲线。如果x、 y、z为同阶矩阵,则绘制对应列的多条曲线。 格式二:plot3(x, y, z, ’s’) 功能:按字符串s设置的线型、颜色、标记符号绘制三维空间曲线。字符串s的设置与 plot命令的设置相同。 2.三维网线图函数mesh、meshc和meshz MATALB提供的函数mesh用来绘制三维网线图。 格式一:mesh(X,Y,Z) 功能:根据矩阵X、Y和Z绘制彩色的空间三维网线图。X、Y和Z中对应的元素为三维空间上的点,点与点之间用线连接。其中网线的颜色随着网点高度的改变而改变。 格式二:mesh(x,y,Z) 功能:n维向量x、m维向量y和m×n矩阵Z绘制网线图,节点的坐标为(x(j),y(i),Z(i,j)),网线的颜色随着网点高度的改变而改变。

3.三维曲面图函数surf及surfc 格式一:surf(X, Y, Z, C) 功能:绘制由四个矩阵所指定的带色参数的网状表面图。视角是由view所指定。轴的刻度决定于X,Y及Z的范围,或当前对轴的设定;颜色范围由C指定。 格式二:surf(X,Y,Z) 功能:将C设为与Z相等,则颜色与网的高度成正比。 4.视图函数view 格式一:view(az, el) 或 view([az,el] ) 功能:设置观察者观察三维图形的视角。az是方位角或者是水平旋转角度,el是仰角。 格式二:view(2) 或 view(3) 功能:设置观察三维图形视角的默认值(az=0,el=90; az=-37,el=30) 格式三:[az, el]=view 功能:返回当前的方位和视角

2.7 M文件及程序调试与变量属性 M文件:由MATLAB命令语句构成的程序文件称作M文件,它将m作为文件的扩展名。可以直接阅读并用任何文本编辑器来建立这种文件。 M文件可分为两种:主程序和子程序。 主程序 (也称主程序文件): 一般是由用户为解决特定的问题而编制的程序。 子程序 (称为函数文件):它必须由其它M文件来调用。函数文件往往具有一定的通用性,并且可以进行递归调用。

2.7.1 M文件的结构 主程序文件的格式特征如下: (1)有关程序的功能、使用方法等内容的注释。主程序前面的若干行通常是程序的注释, 每行以“%”开始。 (2)程序的主体。 (3)整个程序应按MATLAB标识符的要求起文件名,并加上后缀m。 对主程序文件的运行方式通常有两种: 在MATLAB的命令窗口中运行:在MATLAB的命令窗中键入此程序的文件名后,系统就开始执行文件中的程序; 在编辑窗口中运行:通过编辑窗口打开所要运行的文件,然后再运行。主程序文件中的语句可以对MATLAB工作空间中的所有数据进行运算操作。

2.函数文件结构 函数文件是用来定义子程序的。它与主程序文件的主要区别有三点: (1)由function起头,后跟的函数名必须与文件名相同; (2)有输入输出变元(变量),可进行变量传递; (3)除非用global声明,程序中的变量均为局部变量,不保存在工作空间中。 通常,函数文件由五部分构成: ·函数定义行; ·H1行; ·函数帮助文本; ·函数体; ·注释。

函数定义命令function( ) 格式: function [output1,output2,…]=functionname(input1,input2,….) 功能:定义函数名为functionname的函数(或子程序),该函数的输出变量为[output1,output2,…],输出变量为 (input1,input2,….)。 例如:function y=mean(x,dim) function为函数定义的关键字,mean为函数名,y为输出变量,x和dim为输入变量。 注意:当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。例如:function[x,y,z]=sphere(theta,phi,rho)。当函数不含输出变量时,则直接略去输出部分或采用空方括号表示。

2.7.2 局部变量与全局变量 通常,在MATALB工作空间中,变量有三类: •由调用函数传递输入和输出数据的变量; 2.7.2 局部变量与全局变量 通常,在MATALB工作空间中,变量有三类: •由调用函数传递输入和输出数据的变量; •在函数内临时产生的变量—称为局部变量 •由调用函数空间、基本工作空间或其它函数工作空间提供的变量—称为全局变量。 在MATLAB中对变量以及全局变量管理提供了以下的命令: 1.global 格式:global X Y Z 功能:将变量 X、Y、Z定义成全局变量。 2.Persistent 格式:persistent X Y Z 功能:将变量X、Y、Z定义成永久变量。persistent 函数只用于函数文件中,使在每次 调用时保持变量的值不变。

2.7.3 程序的调试 1.MATLAB的主程序的调试: MATLAB的查错能力很强,加上工作空间中变量的保存和显示功能不需要专门的调试命令,因此,主程序的调试很方便地进行。 2.函数程序的调试: 因为在函数程序中出错而停机时,其变量不作保存。虽然它也会指出出错的语句,但因为子程序中的变量(局部变量)在程序执行完毕后会自动消失,其它现场数据又无记录,会给调试带来很大困难。可采用下列措施: (1)把某些分号改为逗号,使中间结果能显示在屏幕上,作为查错的依据。 (2)在子程序中适当部位加keyboard命令,到了此处,系统会暂停而等待用户键入命令。这时子程序中的变量还存于工作空间中,可以对它进行检查。 (3)将函数文件的第一行前加“%”号,使它成为程序文件来作初步调试。第一行中的输入变元,可改用input或赋值语句来输入,调试好后再改回为函数文件。 (4)在程序中使用以下人机交互命令,也可大大提高程序的调试程度。