当前位置:文档之家› 第2章 MATLAB应用基础-1

第2章 MATLAB应用基础-1

第2章 MATLAB应用基础

本章要点M源自TLAB 变量及其操作MATLAB数组与矩阵


MATLAB M文件
MATLAB 程序控制结构
1

主要内容

2.1 MATLAB变量及其操作 2.2 MATLAB数组与矩阵运算 2.3 数学函数 2.4 M文件 2.5 程序控制结构
2

14
• 相反,char函数可以把ASCII码矩阵转换为字符 重新调整矩阵的行数、 串矩阵。 列数、维数
• 例如 显示一个3行32列的ASCII 字符变量串: ascii = char(reshape(32:127,32,3)') 输出结果为 表示转置 ascii = !"#$%&'()*+,-./0123456789:;<=> ? @ABCDEFGHIJKLMNOPQRSTUV WXYZ[\]^_ 'abcdefghijklmnopqrstuvwxyz{|}~
②删除成员
使用rmfield函数删除结构的成员
例:删除成员x4: s=rmfield(s,‘x4’);
二、单元数据
定义:单元(Cell)数据的概念与结构有些类似,
也是把不同属性的数据放在一个变量中。
区别:结构变量是一种嵌套形式数据,即一个结
构矩阵包含若干个结构元素,元素又包含若干成
员。对成员的引用是:结构变量名 . 成员名。而单
含义 字符串变小写 将字符串转换成数值 字符串连接,同[] 字符串比较 字符串变大写
19
讲在结构和单元矩阵之前:矩阵的建立
1.直接输入法 最简单的建立矩阵的方法是采用矩阵构造符‚[]”从 键盘直接输入矩阵的元素。 • 构造1×n矩阵(行向量)时,可以将各元素依次 放入矩阵构造符[]内,并且以空格或者逗号分隔; • 构造m×n矩阵时,每行如上处理,并且行与行之 间用分号分隔。 例:a=1;b=2;c=3; x=[5 b c;a*b,a+c,c/b] 2.利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立 一个M文件。
11
4.字符串 字符串是用单撇号括起来的字符序列。 例: x = ‘Liaocheng University' MATLAB将字符串当作一个行向量,每个元素对 应一个字符,其标识方法和数值向量相同。 例: x(1) ans = L 可以用[]建立多行字符串矩阵。要求各行字符数 要相等。如果字符数不相等,可以用空格来调整 。 例:ch=['Li Qiang'; 'Wangfang'; 'Sun jun'] ch = Li Qiang Wangfang 12 Sun jun
也可以用函数char()建立多行字符串矩阵。输入的 时候不要求各行字符数要相等,自动添加空格进 行调整 例:ch=char(‘first'; ‘second')
ch = first second
13
• 字符串是以ASCII码形式存储的。 • abs和double函数都可以用来获取字符串矩阵所对 应的ASCII码数值矩阵。 例:abs('A'), double(‘Liaocheng University’) ans = 65 ans = 76 105 97 111 99 104 101 110 103 32 85 110 105 118 101 114 115 105 116 121
5. 结构矩阵和单元矩阵
一、结构矩阵
通过使用结构(Structure)数据类型把一组不同 类型的数据同时又是在逻辑上相关的数据组成一个 有机的整体,以便于管理和引用。
23
1 结构矩阵的建立与引用
(1)建立格式: 结构矩阵名 . 成员名=表达式
结构矩阵名=struct(‘field1’,{},’field2’,{},…) 结构包含2个元素 例: s(1).type = 'big'; s(1).color = 'red';


矩阵是MATLAB最基本、最重要的数据对 象,MATLAB的大部分运算或命令都是在矩 阵运算的意义下执行的,而且这种运算定义 在复数域上。向量和单个数据都可以作为矩 阵的特例来处理。 数值数据:双精度型、单精度数、带符号整 数和无符号整数、复数 字符数据。 结构体(Structure)和单元(Cell)数据类型。 稀疏矩阵(Sparse)。 逻辑型数据。在MATLAB中,以数值1(非零 )表示‚真‛,以数值0表示‚假‛。用 logical()函数将任何非零的数值转换为true, 将数值0转换为false
7
注意:1.变量名区分字母的大小写 例如:abc ABC aBc 代表三个不同的变量 2. MATLAB提供的标准函数名以及命令名必 须用小写字母。 例如: sin(A)不能写成Sin(A)或SIN(A)
8
2.赋值语句 (1) 变量=表达式 : (2) 表达式: 表达式是用运算符将有关运算量连接起来的式子 ,其结果是一个矩阵。 (1)将表达式的值赋给左边的变量 (2)将表达式的值赋给MATLAB预定义变量ans 例:rho = (1+sqrt(5))/2 (1+sqrt(5))/2 rho = ans = 1.6180 1.6180 注意:在MATLAB语句后面可以加上注释,注释以 %开头,后面是注释的内容。
(2)引用格式:
① 结构矩阵元素的成员:显示这个成员的具体内容。
s(1).type
② 结构元素:显示成员名和它的值,但成员如果是
矩阵,则不显示矩阵具体内容,而只显示矩阵的
大小参数。
s(1) ③ 结构矩阵:显示结构矩阵的大小参数和成员名。 s
25
2 结构矩阵成员的增加和删除 ①增加成员
可给s中任意一个元素增加成员x4: 例: s(1).x4 = '410075‘ 其他结构元素的成员均为空矩阵,可以用赋值语句 给其赋确定的值
• 3.建立大矩阵
大矩阵可由方括号中的小矩阵或向量建立起来。 • 例: A=[1 2 3;4 5 6;7 8 9]; C=[A,eye(size(A)); ones(size(A)),A]
C=
1 4 7 1 1 1
2 5 8 1 1 1
3 6 9 1 1 1
1 0 0 1 4 7
0 1 0 2 5 8
16
对较长的字符串可以用字符串向量表示,用[]括起来 例:f=70;c = (f-32)/1.8; [‘room temperature is ’ num2str(c) ‘ degree’] ans = room temperature is 21.1111 degree 注意:字符串向量中的每一项之间可以用空格或者 逗号,隔开
0 0 1 3 6 9
4 矩阵元素
(1)通过下标引用矩阵的元素,例如A(3,2)=200 (2)采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储,先第一列,再 第二列,依次类推。例如 A=[1,2,3;4,5,6]; A(3) ans = 2 序号(Index)与下标(Subscript )是一一对应的,以 m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i 。其相互转换关系也可利用sub2ind和ind2sub函数求 得。
取 值 用于结果的缺省变量名 圆周率 计算机的最小数,当和 1 相加就产生一个 比 1 大的数 浮点运算数 无穷大,如 1/0,1e1000,2^1000, exp(1000), log(0) = -inf 不定量,如 0/0 虚数单位,i=j= 1 所用函数的输入变量数目 所用函数的输出变量数目 最小可用正实数,如 2^(1022),2.2251e-308 最大可用正实数 存放最新的错误信息 存放最新的警告信息
3
整数类型:
名 称 表示 范围 转换函 数 名 称 表示范 围 转换函 数
有符号 1 −27 ~ 无符号1 0 ~ int8() uint8() 字节整数 27−1 字节整数 28−1
有符号 2 −215 无 符 号 2 0 ~ uint16 int16() 15 字节整数 ~2 −1 字节整数 216−1 () 有符号 4 −231 无 符 号 4 0 ~ uint32 int32() 字节整数 ~231−1 字节整数 232−1 () 有符号 8 −263 无 符 号 8 0 ~ uint64 int64() 字节整数 ~263−1 字节整数 264−1 ()
17
常用的字符串处理函数:
函数名 abs char mat2str num2str int2str
含义 字符串到ASCII码转换 ASCII码到字符的转换 将矩阵转换成字符串 将数值转换成字符串 将整数转换成字符串
18
常用的字符串处理函数:
函数名 lower str2num strcat strcmp upper
(2)单元矩阵的引用
用带有花括号的下标的形式对单元矩阵元素进行引用 [] [] [] [] 输入b{2,2}输出结果是‘wang’
6
2.1 变量及其操作
1.变量命名 在MATLAB 7.11中,变量名是以字母开头,后接 字母、数字或下划线的字符序列,最多63个字符 。在MATLAB中,变量名区分字母的大小写。 2x : 错误: 不应为 MATLAB 表达式 _x: 输入字符不是 MATLAB 语句或表达式中的有 效字符。 x:未定义函数或变量 'x'。 x=6 : x = 6
9
3.一些特殊变量和常量 在MATLAB工作空间中,还驻留几个由系统本 身定义的变量。例如,用pi表示圆周率π的近似值 ,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应尽量避 免对这些变量重新赋值。
相关主题