1 / 25

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

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

bat
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 上课时间:周二、四(7、8节) 地点:西2-西305 上机时间:周一、三(7、8节) 地点:计算机教学实验中心 教1南3层西头(网络中心隔壁) 网上交作业时间: 周三上机作业,截至当周周日晚12:00 周一上机作业,截至当周周三晚12:00 gdjiang@mail.xjtu.edu.cn

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

  3. 第2章 Matlab语言程序设计 • 1、 Matlab数据类型 • 变量和常量 • 数字变量的格式 • 字符串 • 单元型变量 • 结构型变量 • 矩阵、向量 • 多项式

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

  5. 第2章 Matlab语言程序设计 Matlab永久变量

  6. 第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

  7. 第2章 Matlab语言程序设计 • c) 字符串 • 所有字符串都用单引号括起来。 • >> s='matlab ' • 字符中中的每个字符(包括空格)都是字符串变量(矩阵或向量)中的一个元素。 • 字符串中的字符以 ASCII 码形式储存并区分大小 ,用函数abs可以看到字符的ASCII码。 • 在Matlab中,字符串和字符矩阵基本上是等价的。 • >> s=['matlab'] 等价于 >> s='matlab '

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

  9. 第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=['中国';'北京']

  10. 第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)

  11. 第2章 Matlab语言程序设计 e) 结构型变量 结构型变量是另一种可以将不同类型数据组合在一起的数据类型,与单元型变量的不同在于结构型变量是以指针方式来传递数据的。 >> D.a1='abcd'; >> D.a2=1; >> D.a3=[1,2,3,4]; >> D D = a1: 'abcd' a2: 1 a3: [1 2 3 4] D为结构型变量 >> C=struct('c1',1,'c2',B,'c3','abcd') C = 1x3 struct array with fields: c1 c2 c3 C为结构型变量

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

  13. 第2章 Matlab语言程序设计 • 多项式 • 多项式是以向量的形式表达的。可以是列向量也可以是行向量。 • >> 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

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

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

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

  17. 第2章 Matlab语言程序设计 关系操作符 逻辑操作符

  18. 第2章 Matlab语言程序设计 • MATLAB 的关系操作符运算法则: • 当两个变量是标量a 和 b时 • ◆若 a、b 之间关系成立,则关系运算结果为 1; • ◆若 a、b 之间关系不成立,则关系运算结果为 0; • 当两个维数相同的矩阵 A 和 B比较时,矩阵 A、B 比较的是相同位置的元素,按标量的运算规则逐个进行。关系运算的结果是一个和 A维数相同的矩阵,它的元素由 0 和 1 组成。 • 当一个矩阵A 和一个标量 b比较时,把标量 b 和矩阵A 的每一个元素按标量关系运算规则逐个比较。关系运算的结果是一个和数组 A维数相同的矩阵,它是由 0 和 1 组成。 • 优先级 由高到低为算术运算、关系运算和逻辑运算。

  19. 第2章 Matlab语言程序设计 关系运算举例 >> 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 >> 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

  20. 第2章 Matlab语言程序设计 • 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 具有同样维数的矩阵; • ◆逻辑“ 非”运算是一元运算符,服从数组运算规则; • ◆在逻辑“ 与”、“ 或”、“ 非”三者中, “ 非”的优先级最高,“ 与”与“ 或”具有相同的优先级,从左向右执行。 • 通过 “( )”可以改变各操作符之间的优先级。

  21. 第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&B AB = 1 1 1 1 0 1 1 1 1 >> A_B=A|B A_B = 1 1 1 1 1 1 1 1 1 >> C=~A C = 0 0 0 0 1 0 0 0 0 >> cc=(A>3)&(B<6) cc = 0 1 1 0 0 0 1 0 0

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

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

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

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

More Related