第2章 MATLAB程序设计

合集下载

matlab使用教程2-2

matlab使用教程2-2

第2章 Matlab语言程序设计 章 语言程序设计
写二进制文件: 用fwrite写二进制文件: 写二进制文件 COUNT=fwrite(Fid, A, precision) 例: Fid=fopen(‘test.dat’, ‘w’); cnt=fwrite(Fid, A, ‘float’) fclose(Fid); 读取ASCII数据文件: 数据文件: 用fscanf读取 读取 数据文件 [A, COUNT]=fscanf(Fid, format, size) format用以控制读取的数据格式,由%加上格式符组成, 用以控制读取的数据格式, 加上格式符组成, 用以控制读取的数据格式 常见的格式符有: 常见的格式符有:d, i, o,u, x, e, f, s, c。 。 例:fscanf(Fid, ‘%s’); fscant(Fid, ‘%6.2f’); fscanf(Fid, “%5d’);
第2章 Matlab语言程序设计 章 语言程序设计
d) 其它与流程控制有关的语句
if
if
break语句循环结构 语句循环结构 语句
continue 语句循环结构 语句循环结构
第2章 Matlab语言程序设计 章 语言程序设计
pause 指令使程序运行停止,等待用户按任意键继续; 指令使程序运行停止 等待用户按任意键继续; 使程序运行停止, input 指令提示用户从键盘输入数值、字符串或表达 指令提示用户从键盘输入数值 提示用户从键盘输入数值、 并接受输入; 式,并接受输入; disp指令在屏幕上显示字符串; 指令在屏幕上显示字符串 指令在屏幕上显示字符串 echo on指令显示其后所有执行文件的指令; 指令显示其后所有执行文件的指令 指令显示其后所有执行文件的指令; echo off指令关闭其后所有执行文件的指令显示。 指令关闭其后所有执行文件的指令显示 指令关闭其后所有执行文件的指令显示。

matlab第2章

matlab第2章
21
2. MATLAB变量的显示
任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值
给指定的变量。没有指定变量பைடு நூலகம்,赋值给默认变量名ans,数据
的显示格式由format命令控制。
Format只影响结果的显示,不影响计算与存储。
MATLAB以双字长浮点数(双精度)执行所有的运算。
22
2.4.1.2 字符串
a在前面未赋值时,非法命令。
19
1. 变量命名规则 (1)变量名区分字母的大小写,A与a表示不同的变量。 (2)变量名必须以英文字母开头,之后可以使用字母、数字、下画线, 但不能使用空格和标点符号。 (3)变量名长度不能超过31个字符,超过部分将被忽略
(4)某些常量也可以作为变量使用。
如 i 在MATLAB中表示虚数单位,但也可以作为变量使用。
5
3.Debug主菜单项 (1)Open M-Files when Debugging:调试时打开M文件 (2)Step:单步调试程序
(3)Step In:单步调试进入子程序
(4)Step Out:单步调试从子程序跳出 (5)Continue:程序执行到下一断点 (6)Clear Breakpoints in All Files:清除所有打开文件中的断点 (7)Stop if Errors/Warnings:在程序出错或报警处停止往下执行
8
5.Window主菜单项 (1)Close All documents:关闭所有文档 (2)0 Command Window:选定命令窗口为当前活动窗口 (3)1 Command History:选定历史命令窗口为当前活动窗口 (4)2 Current Directory:选定当前路径窗口为当前活动窗口

第二章_MATLAB语言基础_第1节-赵亦欣

第二章_MATLAB语言基础_第1节-赵亦欣
ans的值将在下一条表达式语句执行后被刷新。
第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i

Matlab第2章

Matlab第2章
2 2 2 2
程序控制结构
3.break语句和continue语句 break语句用于终止循环的执行。当在循环体内执行到该语 句时,程序将跳出循环,继续执行循环语句的下一语句。 continue语句控制跳过循环体中的某些语句。当在循环体内 执行到该语句时,程序将跳过循环体中所有剩下的语句,继 续下一次循环。 【例2.11】输入两个整数,求它们的最小公倍数。 程序如下: x=input('请输入第一个数:'); y=input('请输入第二个数:'); z=max(x,y); while or(rem(z,x)~=0,rem(z,y)~=0) z=z+1; end disp([num2str(x),'和',num2str(y),'的最小公倍数是: ',num2str(z)])
3.try语句 try语句是一种试探性执行语句,为开发人员提供了一种捕获错误的机制,其语 句格式为 try 语句块1 catch 语句块2 end try语句先试探性执行语句块1,如果语句块1在执行过程中出现错误,则将错误 信息赋给保留的lasterr变量,并转去执行语句块2。 【例2.6】矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘 积,若出错,则自动转去求两矩阵的点乘。 A=input('请输入A矩阵:'); B=input('请输入B矩阵:'); lasterr(''); %清除原有的错误信息 try C=A*B; catch C=A.*B; end C disp(lasterr) %显示出错原因
2.2 程序控制结构
3.程序的暂停 当程序运行时,为了查看程序的中间结果或者观看输出的图 形,有时需要暂停程序的执行。这时可以使用pause函数, 其调用格式为 pause(延迟秒数) 如果省略延迟时间,则将暂停程序,直到用户按任一键后程 序继续执行。 若要强行中止程序的运行可使用Ctrl+C组合键。

第二章 MATLAB语言的使用与程序设计

第二章 MATLAB语言的使用与程序设计

命令历史窗口:显示已执行过的命令。在窗口的某一命令上单击鼠标 右键,会弹出菜单,对所选命令进行操作。


当前路径窗口:提供了当前路径文件的操作
演示
MATLAB的搜索路径
搜索路径是一系列文件路径的组合。当程序和命令执行 时, MATLAB 在搜索路径中查找程序或命令运行所需的函数文 件。 MATLAB 在执行搜索时按照规定的顺序。如:在命令窗口 中输入example,MATLAB将按下面的步骤来处理: 1.检查example是不是一个变量,如果是,则返回变量的值;
本章重点:
MATLAB工作环境掌握 主要文件类型及常用命令
矩阵、变量、表达式、常用函数
MATLAB语言的基本语句结构及程序调试方法
一、MATLAB系统简介
MATLAB的主要组成部分
1.MATLAB语言体系:MATLAB 语言是一种以矩阵运算为基础的高级 语言,具有条件控制、函数调用、数据结构、输入输出及面向对象等 程序语言特征,可以进行程序设计。
6 )对矩阵的特殊操作: rot90(a) 将 a 矩阵旋转 90 度、 fliplr(a) 将 a 矩阵的列反序、 flipud(a) 将 a 矩阵的行反序、diag(a) 将向量 a 构 成对角阵( 元素放在主对角线上 )---a 为向量、triu(a) 提取矩阵的上 三角部分、reshape改变矩阵的阶数,按列的顺序重排。
逻辑运算符: 在MATLAB中,逻辑运算符有3种。 & 逻辑与。当运算双方对应元素都为非零时; 结果为1,否则,结果为0。
| 逻辑或。当运算双方对应元素有一个为非零 时;结果为1,否则,结果为0。
~ 结果为0。 逻辑非。当元素的值为 0 时,结果为 1 ,否则,
例: a=[1 0 3;0 –1 6] , b=[-1 0 0;0 5 0.3] ,计算两矩

Matlab_2_3

Matlab_2_3

3.程序的暂停 . 暂停程序的执行可以使用pause函数, 函数, 暂停程序的执行可以使用 函数 其调用格式为: 其调用格式为: pause(延迟秒数 延迟秒数) 延迟秒数 如果省略延迟时间,直接使用pause, 如果省略延迟时间,直接使用 , 则将暂停程序, 则将暂停程序,直到用户按任一键后 程序继续执行。 程序继续执行。 若要强行中止程序的运行可使用 Ctrl+C命令。 命令。 命令
计算分段函数的值。 例2-4 计算分段函数的值。 程序如下: 程序如下: x=input('请输入 的值 请输入x的值 请输入 的值:'); if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end y
Байду номын сангаас
(3) 多分支 语句: 多分支if语句 语句: if 条件 条件1 语句组1 语句组 elseif 条件 条件2 语句组2 语句组 …… elseif 条件 条件m 语句组m 语句组 else 语句组n 语句组 end 语句用于实现多分支选择结构。 语句用于实现多分支选择结构。
分别建立命令文件和函数文件, 例2-1 分别建立命令文件和函数文件,将华 氏温度f转换为摄氏温度 转换为摄氏温度c。 氏温度 转换为摄氏温度 。 程序1: 程序 : 首先建立命令文件并以文件名f2c.m存盘。 存盘。 首先建立命令文件并以文件名 存盘 clear; %清除工作空间中的变量 清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); : c=5*(f-32)/9 然后在MATLAB的命令窗口中输入 ,将会 的命令窗口中输入f2c, 然后在 的命令窗口中输入 执行该命令文件,执行情况为: 执行该命令文件,执行情况为: Input Fahrenheit temperature:73 : c= 22.7778

《MATLAB程序设计教程(第二版)》第2章 MATLAB矩阵及其运算

《MATLAB程序设计教程(第二版)》第2章  MATLAB矩阵及其运算

例2-5 将101~125等25个数填入一个5行5列的表格中,
使其每行每列及对角线的和均为565。 M=100+magic(5)
(2) 范得蒙矩阵
范得蒙(Vandermonde)矩阵最后一列全为1,倒数 第二列为一个指定的向量,其他各列是其后列与
倒数第二列的点乘积。可以用一个指定向量生成
一个范得蒙矩阵。在MATLAB中,函数vander(V) 生成以向量V为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩阵。
对于比较大且比较复杂的矩阵,可以为它专门 建立一个M文件。下面通过一个简单例子来说明
如何利用M文件创建矩阵。
例2-2 利用M文件建立MYMAT矩阵。
(1) 启动有关编辑程序或MATLAB文本编辑器,并 输入待建矩阵:
(2) 把输入的内容以纯文本方式存盘(设文件名为
mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即运 行该M文件,就会自动建立一个名为MYMAT的 矩阵,可供以后使用。
是维数为0。
4.改变矩阵的形状
reshape(A,m,n)函数在矩阵总元素保持不变的前提下,
将矩阵A重新排成m×n的二维矩阵。
注意:
在MATLAB中,矩阵元素按列存储,即首先存储矩
阵的第1列元素,然后存储第2列元素,……,一直 到矩阵的最后一列元素。reshape函数只是改变原矩 阵的行数和列数,即改变其逻辑结构,但并不改变 原矩阵元素个数及其存储结构。
load 文件名 [变量名表] [-ascii]
其中,文件名可以带路径,但不需带扩展名.mat,
命令隐含一定对.mat文件进行操作。变量名表中 的变量个数不限,只要内存或文件中存在即可,

第2章_MATLAB的基本操作

第2章_MATLAB的基本操作
浮点数
浮点数包括单精度(4个字节)和双精度(8个字 节),默认为双精度。
single :将其它类型的数据转换成单精度浮点数。 double :将其它类型的数据转换成双精度浮点数。
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
MATLAB数据类型
例:
MATLAB数据类型
细胞变量的定义
可以通过以下两种方式定义一个细胞变量:
用赋值语句直接定义; 由 cell 函数预先分配存储空间,然后对细
胞的每个元素逐个赋值。
MATLAB数据类型
MATLAB数据类型
细胞变量可以嵌套定义
MATLAB数据类型
细胞变量的元素的引用
MATLAB数据类型
str2num:将字符数组转换为
数值数组
abs,double,char按照 ASCII码 转换; num2str,int2str,mat2str,str2num 直接转换。
MATLAB数据类型
字符串的连接
水平连接:strcat 或 中括号中用逗号连接
在中括号中直接水平连 接,结果中包括原字符 串结尾处的空格。 用 strcat 连接,结果 中忽略原字符串结尾处 的空格。
把数字直接转换为字符 串,每个数字为一个独 立的字符串。
把数字取整后转换为字 符串,注意和 num2str 的区别。
把矩阵转换为一个字符 串,方括号、分号和空 格都是其元素。
MATLAB数据类型
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章 MATLAB程序设计
2.2 程序流程语句
一、if语句
1.单分支if语句
最简单的选择结构语句,其基本格式为: if 表达式 语句组 end 说明:表达式多为关系或逻辑表达式。如果表达式为真(非零), 就执行if和end之间的语句组,然后再执行end之后的语句;如果 表达式为假(零),就直接执行end之后的语句。
3.文本编辑器的调试功能
(1)设置断点 设置断点是高级语言中程序调试的重要手段之一,断点是在程 序特定位置设置的中断点,当程序运行至断点处时会暂停运行, 此时可通过检查相关变量的内容等方法确定程序的运行是否正确。 图中的红色菱形点即为设置的断点。
第2章 MATLAB程序设计
(2)Debug菜单 1)Step:单步执行。每单击一次,程序运行一次,但不 进入函数。 2)Step in:单步运行。遇到函数时进入函数内,仍单步 运行。 3)Step out:停止单步运行。如果是在函数中,跳出函 数;如果不在函数中,直接运行到下一个断点处。 4)Save and Run:存储文件并从第1行开始执行程序, 当遇到第1个断点时暂停运行,并变为Continue;单击 〈F5〉或【Continue】则继续运行。 5)Go Until Cursor:从当前位置运行到光标所在的位置。
第2章 MATLAB程序设计
4.打开已有的M文件 打开已有的M文件,也有三种方法: 1)菜单操作:单击操作桌面或文本编辑器的File → Open…选项,则打开Open或Open File窗口,再选择 要打开的文件; 2)命令操作:在命令窗口输入命令edit <文件名>,回车 后则打开指定的M文件。如果文件不在当前路径下, 还需在文件名前加上路径。例如打开上例的文件,可 在命令窗口的>>提示符后输入edit myfile.m; 3)命令按钮操作:单击操作桌面工具栏上的打开文件按 钮 ,则打开Open或Open File窗口,再选择要打开 的文件。
第2章 MATLAB程序设计
六、其他语句
1.continue语句 continue语句用于控制for循环或while循环跳过某些执行语句,当出现 continue语句时,则跳过循环体中所有剩余的语句,继续下一次循环,即 结束本次循环。 2.break语句 break语句用于终止for循环和while循环的执行。当遇到break语句时,则退 出循环体,继续执行循环体外的下一个语句,即中止循环。在嵌套循环中, break往往存在于内层的循环中。 3.try语句 MATLAB从5.2版开始提供了try语句,这是一种试探性执行语句。语句格 式为: try 语句组1 catch 语句组2 end 说明:先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将 错误信息赋给保留的lasterr变量,并转去执行语句组2。这种试探性执行语 句是其他高级语言所没有的。
第2章 MATLAB程序设计
(1)函数文件名 函数文件名通常由函数名再加上扩展名.m组成,不过函数文件名与 函数名也可以不相同。 (2)注释说明 注释说明包括以下三部分内容: 1)紧随函数文件定义行之后,以%开头的第一行。这一行一般包括大 写的函数文件名和函数功能的简要描述,供lookfor关键词查询和 help在线帮助用。 2)第一行之后连续的注释行。通常包括函数输入、输出参数的含义及 调用格式说明等信息,构成全部在线帮助文本。 3)与在线帮助文本相隔一个空行的注释行。包括函数文件编写和修改 的信息,如作者、修改日期、版本等内容,用于软件档案管理。 (3)return语句 如果在函数文件中插入了return语句,则执行到该语句就结束函数 的执行,程序流程转到调用该函数的位置。
第四章
计算机网络
计算机网络技术应用
MATLAB基础及应用 第2版
主编:于润伟 朱晓慧
renshaobin523@
第2章 MATLAB程序设计
第2章 MATLAB程序设计
本章要点 M文件的建立与调试方法 M文件的程序流程语句 函数文件的建立与调用 应用程序设计
第2章 MATLAB程序设计
第2章 MATLAB程序设计
2.3 函数文件
一、基本结构
函数文件由function关键字引导,其基本结构为: function [输出形参表]=函数名(输入形参表) 注释说明部分 函数体语句 return 说明:以function开头的一行为引导行,表示该文件是一个函数文 件。函数名的命名规则与变量名相同。输入形参表是函数的输入 参数,可以有多个,用“逗号”来分隔;输出形参表为函数的输 出参数,当输出形参只有一个时,直接输入变量名而不用方括号, 多个输出形参用“逗号”来分隔。 注意:函数文件编辑结束后,不能像M文件那样单击〈F5〉或单 击Debug → Save and Run选项运行,而是要直接存盘。
第2章 MATLAB程序设计
2.2.5 循环的嵌套
如果一个循环结构的循环体又包括一个循环 结构就称为循环的嵌套,或称为多重循环。任 一种循环语句的循环体部分都可以包含另一个 循环语句,多重循环嵌套的层数可以是任意的。 习惯上按照嵌套层数,分别叫做二重循环、三 重循环等。处于内部的循环叫做内循环,处于 外部的循环叫做外循环。在设计多重循环时, 要特别注意内、外循环之间的关系,以及语句 放置次序,不要搞错。
第2章 MATLAB程序设计
2.文本编辑器的编辑功能
(1)Go To... 当选定Go To...选项时,弹出如图2-2所示的对话框,输入行号 单击【OK】后,光标自动移到指定的行上,并将该行作为当前行。
(2)Set/Clear Bookmark
该选项为“设置或清除书签”。
第2章 MATLAB程序设计
三、参数的可调性
MATLAB在函数调用上有一个与一般高级语言不同之处,就是 函数所传递参数数目的可调性。凭借这一点,一个函数可完成多 种功能。在调用函数时,MATLAB用两个永久变量nargin和 nargout分别记录调用函数时的输入实参和输出实参的个数。只要 在函数文件中包含这两个变量,就可以准确地知道该函数文件被 调用时的输入输出参数个数,从而决定函数如何进行处理。
第2章 MATLAB程序设计
四、for语句
for语句为计数循环语句,在许多情况下,循环条件是 有规律变化的,通常把循环条件初值、终值和变化步 长放在循环语句的开头,这种形式就是for语句的循环 结构。for循环的一般形式是: for 循环变量名=表达式1:表达式2:表达式3 语句体 end 说明:其中表达式1的值是循环变量的初值,表达式2 的值是循环步长,表达式3的值是循环变量的终值。初 值、步长和终值可以取整数、小数、正数和负数,步 长可以缺省,缺省值为1。
第2章 MATLAB程序设计
三、while语句
while语句是条件循环语句,在条件(多为关系表达式) 控制下重复执行,直到条件不成立为止。while循环的 一般形式是: while 表达式 语句体 end 说明:先计算表达式的值,如果非零,语句体就执行一 次;执行完毕再次计算表达式的值,如果仍然非零, 语句体就再执行一次;如此循环,直到表达式的值为 零。如果表达式的值总是非零,该循环将无休止地进 行(即死循环),程序设计时一定要避免。
第2章 MATLAB程序设计
二、M文件的调试
1.直接调试法 1)如果在错误信息中指出了出错的行号,可先根据错误信息检查该 语句是否存在语法错误或运行中变量尺寸不一致等情况。 2)检查所调用函数或命令的拼写是否正确,括号(包括方括号和圆 括号)是否配对,各种流程控制语句是否匹配(如for与end、 while与end、switch与end等)。 3)检查所调用的函数或载入的数据文件是否在当前目录或搜索路径 上。 4)将重点怀疑的命令行后的分号删除,使得计算结果能够实时地显 示在屏幕上,作为查错的依据,根据显示的结果判断问题的所在。 5)如果怀疑某个函数文件有问题,可以在该函数文件的函数定义行 前加“%”,使其函数体成为命令文件(因为命令文件中的变量存 储在工作空间中,可以在工作空间窗口和数组编辑器观察修改), 调好后再改回函数文件。
第2章 MATLAB程序设计
四、全局变量
全局变量的作用域是整个MATLAB工作空间,即全程 有效,所有的函数都可以对其进行存取和修改,因此 定义全局变量是函数间传递信息的一种手段。在函数 文件里,全局变量的定义语句应放在变量使用之前, 为了便于了解所有的全局变量,一般把全局变量的定 义语句放在文件的前部。定义全局变量的方法是使用 global函数,格式为: global 变量名 全局变量名多用大写字母,并有选择地以首次出现的 M文件的名字开头,这样,可把多个全局变量之间不 必要的互作用减至最小。
第2章 MATLAB程序设计
2.双分支if语句 前面提供的单分支if语句只能处理较简单的条件,功能 不全面。为此MATLAB还提供了双分支if语句结构。其 基本格式为: if 表达式 语句组1 else 语句组2 end 说明:如果表达式为真(非零),则执行语句组1,再 执行end后面的语句;如果表达式假(为零),则先执 行语句组2,再执行end后面的语句。
第2章 MATLAB程序设计
3.多分支if语句
当有三个或更多的选择时,可采用if语句的嵌套,也可以采用多分 支if语句。其基本格式为: if 表达式1 语句组1 elseif 表达式2 语句组2 … elseif 表达式n 语句组n else 语句组n+1 end 说明:先判断表达式1的值,若为真,则执行语句组1,执行完语句 组1后,跳出该选择结构,继续执行end 后的语句;当表达式1的值 为假时,跳过语句组1,进而判断表达式2,若为真,则执行语句组 2,然后继续执行end 后的语句;如果表达式2的值也为假,则跳过 语句组2,继续判断表达式3,如此下去,若所有表达式都为假 ,则 执行else后的语句组n+1,再执行end 后的语句。else语句可以缺省。
2.1 M文件
相关文档
最新文档