25
上上上上 上上上 上上 :、( 7 8上上上:西 2- 西 305 上上上上 上上 上 上上 :一、( 7 8上上上上上上上上上上上上 上1上3上 上上 上上上 西( 上上上上上上上上上上上上上上上上 上上上上上上上 12:00 上上上上上 上上上上上上上 一, 12:00 [email protected]

上课时间:周二、四(7、8节) 地点:西2-西305 上机时间:周一、三(7、8节) 地点: 计算机教学实验中心

  • Upload
    bat

  • View
    141

  • Download
    0

Embed Size (px)

DESCRIPTION

上课时间:周二、四(7、8节) 地点:西2-西305 上机时间:周一、三(7、8节) 地点: 计算机教学实验中心 教1南3层西头(网络中心隔壁). 网上交作业时间: 周三上机作业,截至当周周日晚12:00 周一上机作业,截至当周周三晚12:00 [email protected]. 第2章 Matlab 语言程序设计. 基本要求: (1) 了解 Matlab 的各种数据类型 ; (2) 掌握 Matlab 的 运算符与操作符 的含义和用法 ; - PowerPoint PPT Presentation

Citation preview

Page 1: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

上课时间:周二、四( 7 、 8 节) 地点:西 2- 西 305

上机时间:周一、三( 7 、 8 节) 地点:计算机教学实验中心 教 1 南 3 层西头(网络中心隔壁)网上交作业时间:周三上机作业,截至当周周日晚 12:00周一上机作业,截至当周周三晚 12:00 [email protected]

Page 2: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

基本要求:(1) 了解 Matlab 的各种数据类型;(2) 掌握 Matlab 的运算符与操作符的含义和用法 ;(3) 掌握 Matlab 基本表达式并了解其常用函数分类;(4) 熟练掌握 Matlab 的程序结构(顺序结构、循环结构和分支结构)与流程控制语句 ;(5) 了解并初步掌握 Matlab 的数据文件的读写; (6) 学会 Matlab 的 M 文件的编写方法,包括命令文件和函数文件。了解 M 件的调试命令和调试方法。

第 2 章 Matlab 语言程序设计

Page 3: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 1 、 Matlab 数据类型

变量和常量数字变量的格式字符串单元型变量结构型变量矩阵、向量多项式

Page 4: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 a) 变量和常量 变量 ( 包括函数 ) 的命名规则:由英文字母、数字和下划线混合组成,不得包含空格和标点 ;第一个字符必须是英文字母,最多包括 31 个字符 ; 对字母的大小写敏感。 局部变量和全局变量 永久变量(常量)只能在某一函数体内使用,而不能从其他函数和 Matlab工作空间访问的变量,就是局部变量。在几个函数及 M atlab 函数中都能使用的变量就是全局变量。 (全局变量名应尽可能大写,并由 globe 声明)

Page 5: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计

Matlab 永久变量

Page 6: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 b) 数字变量 Matlab 内部的每一个数据元素都是用双精度数( double )来表示和存储的。变量输出时用户可以用 format 命令设置或改变输出格式。短格式 (Short) : 1.3333 0.0000短格式 e 方式 (Short e) : 1.3333e+00 1.2345e-06短格式 g 方式 (Short g) : 1.3333 0.0长格式 (Long) : 1.33333333333333 0.00000123450000长格式 e 方式 (Long e) : 1.33333333333333e+00 1.2345000000000e-06长格式 g 方式 (Long g) : 1.33333333333333 0.0000012345银行格式 (Bank) : 1.33 0.00十六进制格式 (Hex) : 3ff555555555 3eb46231abfd71

+ 格式 (+) : ++有理数( Rational ): 1/3 2469/2000000000

Page 7: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 c) 字符串

所有字符串都用单引号括起来。 >> s='matlab '字符中中的每个字符(包括空格)都是字符串变量

( 矩阵或向量 ) 中的一个元素。字符串中的字符以 ASCII 码形式储存并区分大小 ,用函数 abs 可以看到字符的 ASCII 码。在 Matlab 中,字符串和字符矩阵基本上是等价的。

>> s=['matlab'] 等价于 >> s='matlab '

Page 8: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 字符串函数

Page 9: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 字符串举例:>> A= 'China '' 中国 '''               ;输出带引号的汉字  >> B=' 我是好学生 '>> c='I am fine.'>> s3=char('s', 'y','m','b','o','l','i','c')       ;用函数 char 生成字符串>> double(s3')                      ;字符串转换为数值代码>> abs(s3')>> cellstr(s3)                     ;字符矩阵转换为字符串>> b=num2str(a)                      ;数字转换为字符串比较   >> b*2  和   str2num(b)*2>> ab=[A,' ',B,'.'] >> AB=[' 中国 ';' 北京 ']

Page 10: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 d) 单元型变量 单元型变量是一种比较特殊的数据类型,本质上讲,单元型变量实际上是一种以任意形式的数据为元素的多维数组。单元型变量可以存放任何类型、任何大小的数据, 其大小是不定的。>> A=[1,2;3,4]A = 1 2 3 4>> B={1:4, A, 'abcd'}B = [1x4 double] [2x2 double] 'abcd'

B 为单元型变量(用花括号)>> cellplot(B)

>> celldisp(B)

Page 11: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计

>> D.a1='abcd';>> D.a2=1;>> D.a3=[1,2,3,4];>> DD = a1: 'abcd' a2: 1 a3: [1 2 3 4]

D 为结构型变量

e ) 结构型变量 结构型变量是另一种可以将不同类型数据组合在一起的数据类型,与单元型变量的不同在于结构型变量是以指针方式来传递数据的。>> C=struct('c1',1,'c2',B,'c3','abcd')C = 1x3 struct array with fields: c1 c2 c3

C 为结构型变量

Page 12: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 f) 矩阵、向量Matlab 是以矩阵为基本运算单元的,数组作为独立的计算单元实体是不存在的,它的建立、存储完全等同于矩阵,只是计算时在符号上做了不同的约定。向量是组成矩阵的基本元素之一。可以把行向量看成 1n 阶矩阵,把列向量看成 n1 阶矩阵。向量的基本运算采用数组运算法则。

Page 13: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 h)多项式 多项式是以向量的形式表达的。可以是列向量也可以是行向量。>> p=[1,2,3]>> poly2sym(p)ans =x^2+2*x+3>> m=[3;4;5]>> poly2sym(m)ans =3*x^2+4*x+5

],,...,[...)(

110

11

110

nn

nnnn

aaaaPaxaxaxaxP

Page 14: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 2 、运算符与操作符

数学运算符

操作符

Page 15: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

冒号“ :” 可以用来产生向量;用作矩阵的下标,部分地选择矩阵元素;进行行循环操作。续号“ …” 表示一行未完,而在下一行继续; 分号“ ;”在方括号中,表示矩阵中行的结尾;用在每行的结尾,则 不显示该行运算的结果。

第 2 章 Matlab 语言程序设计

Page 16: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 关于逻辑真假的规定:在所有的关系表达式和逻辑表达式中,输入的任何非 0 数都被看作是“ 逻辑真”,而只有 0 才被认为是“ 逻辑假”; 所有关系表达式和逻辑表达式的计算结果是一个由 0 和 1 组成的“ 逻辑矩阵( Logical Array ”) 。矩阵中的 1 表示“ 真”, 0 表示“ 假”;逻辑矩阵是一种特殊的数值矩阵。与“ 数值类”有关的操作和函数对它也适用;但它又不同于普通的“ 数值”,它还表示对事物的判断结论“ 真”与“ 假” 。

Page 17: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 关系操作符

逻辑操作符

Page 18: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

MATLAB 的关系操作符运算法则: 当两个变量是标量 a 和 b 时 ◆若 a 、 b 之间关系成立,则关系运算结果为 1 ; ◆若 a 、 b 之间关系不成立,则关系运算结果为 0 ; 当两个维数相同的矩阵 A 和 B 比较时,矩阵 A 、 B 比较的是相同位置的元素,按标量的运算规则逐个进行。关系运算的结果是一个和 A 维数相同的矩阵,它的元素由 0 和 1 组成。 当一个矩阵 A 和一个标量 b 比较时,把标量 b 和矩

阵 A 的每一个元素按标量关系运算规则逐个比较。关系运算的结果是一个和数组 A 维数相同的矩阵,它是由 0 和 1 组成。 优先级 由高到低为算术运算、关系运算和逻辑运算。

第 2 章 Matlab 语言程序设计

Page 19: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 >> A=[3,4,8;9,0,2;5,3,7]A = 3 4 8 9 0 2 5 3 7>> B=[4,4,1;7,8,4;5,1,7]B = 4 4 1 7 8 4 5 1 7>> E=(A>B)E = 0 0 1 1 0 0 0 1 0

>> NE=(A~=B)NE = 1 0 1 1 1 1 0 1 0>> A0=(A>5)A0 = 0 0 1 1 0 0 0 0 1>> B0=(B<=6)B0 = 1 1 1 0 0 1 1 1 0

关系运算举例

Page 20: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

MATLAB 中逻辑操作符的运算法则: 如果两个标量 a 和 b 运算,则: ◆ a&b : a 、 b 全是非 0 时,运算结果是 1 ,否则是 0 ;◆ a|b : a 、 b 中只要有一个非 0 ,运算结果为 1 ; ◆~a :当 a 是 0 时,运算结果是 1 ,否则是 0 。 如果两个维数相同的矩阵 A 和 B 参与运算,则: 将矩阵 A 和 B 相同位置上的元素按标量的运算规则逐个进行运算。运算的结果是返回一个由 0 和 1 组成的与 A 具有同样维数的矩阵; 如果标量 b 和矩阵 A 参与运算,则: ◆将标量 b 和矩阵 A 中的每个元素进行逻辑运算。逻辑运算的结果是返回一个由 0 和 1 组成的与 A 具有同样维数的矩阵; ◆逻辑“ 非”运算是一元运算符,服从数组运算规则; ◆在逻辑“ 与”、“ 或”、“ 非”三者中, “ 非”的优先级最高,“ 与”与“ 或”具有相同的优先级,从左向右执行。 通过 “( )”可以改变各操作符之间的优先级。

第 2 章 Matlab 语言程序设计

Page 21: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 >> A=[3,4,8;9,0,2;5,3,7]A = 3 4 8 9 0 2 5 3 7>> B=[4,4,1;7,8,4;5,1,7]B = 4 4 1 7 8 4 5 1 7>> AB=A&BAB = 1 1 1 1 0 1 1 1 1

>> A_B=A|BA_B = 1 1 1 1 1 1 1 1 1>> C=~AC = 0 0 0 0 1 0 0 0 0>> cc=(A>3)&(B<6)cc = 0 1 1 0 0 0 1 0 0

逻辑运算举例

Page 22: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 3 、表达式及函数 Matlab 采用的是表达式语言,用户输入的语句由 Matlab 系统解释运行。用户可以在 Matlab 的命令窗口中键入命令,也可以在编辑器内编写应用程序。 Matlab 语句由表达式和变量组成,有两种最常见的语句形式: 表达式 变量=表达式

>> t=6t = 6>> sin(5*t+6)ans = -0.9918>> y=sin(5*t+6)y = -0.9918

Page 23: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

表达式由变量名、运算符、数字和函数名组成。表达式将按常规的优先纽从左至右执行运算;优先级的规定是指数运算级别最高,乘除运算次之;括号可以改变运算顺序;书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。但在复数或符号表达式中要尽量避免空格,以防出错;表达式的末尾加 “;” 时, Matlab系统只把数值赋给变量, 不显示计算结果;不加“;”时, Matlab 系统将会在该条语句的下面直接显示运算结果。

第 2 章 Matlab 语言程序设计

Page 24: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

第 2 章 Matlab 语言程序设计 Matlab 有十分丰富的函数资源,总共分为 24 类。常用有一下几类:一般函数命令 (GENERAL);操作符与操作 (OPERATOR);数据类型和结构 (DATETYPE);基本矩阵和矩阵操作( ELMAT);基本数学函数( ELFUN);二维图 (PLOTXY);图形句柄 (GENGRAPH);三维图 (3DGRAPH);语言和程序设计 (LANGUAGE);文件输入输出函数 (IOFUN);符号工具箱 (SYNBOLIC) 。

Page 25: 上课时间:周二、四(7、8节)         地点:西2-西305 上机时间:周一、三(7、8节)         地点: 计算机教学实验中心

( 1 )创建一个表达式 ,并求当 x=1, y=2 时的 z 值。 ( 2 )计算 的值,其中 。( 3 )创建一个包含“ 她是我们班最好的学生”字符串。 ( 4 )输入如下两个矩阵 A 和 B ,对矩阵 A 和 B 作关系运算,标识出两矩阵中元素相等的位置,元素值不等的位置,并标识出矩阵 A 中所有小于 0 的元素。

, ( 5 )对( 4 )中的矩阵 A 和 B 作逻辑“ 或”、“ 与”运算,并标识出矩阵 B 中所有大于 2 并小于 5 的元素位置。

上机习题( 1 )13sin2

5457.014 5.175.375.02 22

yexz

xyx

ixy 1084

51 x

123312321

A

325823341

B