上课时间:周一,四( 7,8节)
地点:教学主楼 -C106
上机时间:周二、五( 7,8节)
地点,计算机教学实验中心教 1南 3层西头(网络中心隔壁)
网上交作业时间:
周五上机作业,截至当周周日晚 12:00
周二上机作业,截至当周周四晚 12:00
gdjiang@mail.xjtu.edu.cn
基本要求:
(1) 了解 Matlab的各种数据类型 ;
(2) 掌握 Matlab的 运算符与操作符 的含义和用法 ;
(3) 掌握 Matlab基本表达式并了解其常用函数分类;
(4) 熟练掌握 Matlab 的 程序结构 (顺序结构、循环结构和分支结构 ) 与流程控制语句 ;
(5) 了解并初步掌握 Matlab 的 数据文件的读写;
(6) 学会 Matlab 的 M文件的编写方法,包括命令文件和函数文件。了解 M件的调试命令和调试方法 。
第 2章 Matlab语言程序设计第 2章 Matlab语言程序设计
1,Matlab数据类型变量和常量数字变量的格式字符串单元型变量结构型变量矩阵、向量多项式第 2章 Matlab语言程序设计
a) 变量和常量变量 (包括函数 )的 命名规则,由英文字母、数字和下划线混合组成,不得包含空格和标点 ;第一个字符必须是英文字母,最多包括 31个字符 ; 对字母的大小写敏感 。
局部变量和全局变量永久变量(常量)
只能在某一函数体内使用,而不能从其他函数和 Matlab
工作空间访问的变量,就是 局部变量 。
在几个函数及 M atlab函数中都能使用的变量就是 全局变量。 (全局变量名应尽可能大写,并由 globe声明)
第 2章 Matlab语言程序设计
Matlab永久变量第 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
第 2章 Matlab语言程序设计
c) 字符串所有字符串都用单引号括起来。
>> s='matlab '
字符中中的每个字符 ( 包括空格)都是字符串变量
(矩阵或向量 )中的一个元素。
字符串中的字符以 ASCII 码形式储存并区分大小,
用 函数 abs可以看到字符的 ASCII码。
在 Matlab中,字符串 和 字符矩阵 基本上是等价的。
>> s=['matlab'] 等价于 >> s='matlab '
第 2章 Matlab语言程序设计字符串函数第 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=['中国 ';'北京 ']
第 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)
第 2章 Matlab语言程序设计
>> D.a1='abcd';
>> D.a2=1;
>> D.a3=[1,2,3,4];
>> D
D =
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为结构型变量第 2章 Matlab语言程序设计
f) 矩阵、向量
Matlab是以矩阵为基本运算单元的,数组作为独立的计算单元实体是不存在的,它的建立、存储完全等同于矩阵,只是 计算时 在符号上做了不同的约定。
向量是组成 矩阵的基本元素 之一。可以把 行向量 看成 1?n 阶矩阵,把 列向量 看成 n?1阶矩阵。 向量的基本运算采用 数组运算 法则。
第 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
11110
nn
nnnn
aaaaP
axaxaxaxP

第 2章 Matlab语言程序设计
2、运算符与操作符数学运算符操作符冒号,,”
可以用来产生向量;
用作矩阵的下标,部分地选择矩阵元素;
进行行循环操作。
续号,…,表示一行未完,而在下一行继续;
分号,;”
在方括号中,表示矩阵中行的结尾;
用在每行的结尾,则 不显示该行运算的结果。
第 2章 Matlab语言程序设计第 2章 Matlab语言程序设计关于逻辑真假的规定:
在所有的关系表达式和逻辑表达式中,输入的任何 非 0
数都被看作是,逻辑真”,而 只有 0 才被认为是,逻辑假” ;
所有关系表达式和逻辑表达式的 计算结果 是一个 由 0
和 1 组成的,逻辑矩阵( Logical Array),。 矩阵中的 1
表示,真”,0 表示,假”;
逻辑矩阵是一种特殊的数值矩阵。 与,数值类”有关的操作和函数对它也适用 ;但它又不同于普通的,数值”,它还表示对事物的判断结论,真”与,假” 。
第 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 组成。
优先级 由高到低为 算术运算,关系运算 和 逻辑运算。
第 2章 Matlab语言程序设计第 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
关系运算举例
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语言程序设计第 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
逻辑运算举例第 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
表达式由 变量名、运算符、数字和函数名 组成。
表达式将按常规的优先纽 从左至右 执行运算;
优先级的规定是 指数运算级别最高,乘除运算次之 ;
括号可以改变运算顺序;
书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。但在 复数或符号表达式中要尽量避免空格,以防出错;
表达式的末尾加,;” 时,Matlab系统只把数值赋给变量,不显示计算结果 ;不加“;”时,Matlab
系统将会在该条语句的下面直接显示运算结果。
第 2章 Matlab语言程序设计第 2章 Matlab语言程序设计
Matlab 有十分丰富的函数资源,总共分为 24类。
常用有一下几类:
一般函数命令 (GENERAL);
操作符与操作 (OPERATOR);
数据类型和结构 (DATETYPE);
基本矩阵和矩阵操作( ELMAT);
基本数学函数( ELFUN);
二维图 (PLOTXY);
图形句柄 (GENGRAPH);
三维图 (3DGRAPH);
语言和程序设计 (LANGUAGE);
文件输入输出函数 (IOFUN);
符号工具箱 (SYNBOLIC)。
( 1) 创建一个表达式,并求当
x=1,y=2 时的 z值 。
( 2) 计算 的值,其中 。
( 3) 创建一个包含,她是我们班最好的学生,字符串 。
( 4) 输入如下两个矩阵 A 和 B,对矩阵 A 和 B 作关系运算,标识出两矩阵中元素相等的位置,元素值不等的位置,并标识出矩阵 A
中所有小于 0 的元素 。

( 5) 对 ( 4) 中的矩阵 A 和 B 作逻辑,或,,,与,运算,并标识出矩阵 B 中所有大于 2 并小于 5 的元素位置 。
上机练习( 2)
13s i n2
5457.014 5.175.375.02 22

y
exz xyx
ixy 108
4
51x

123
312
321
A
325
823
341
B