60
2 MATLAB 第第第第第第 2.1 第第第第第第第 2.2 MATLAB 第第 2.3 MATLAB 第第 2.4 第第第第 2.5 第第第 2.6 第第第第第第第第第

2.1 变量和数据操作

  • Upload
    kamran

  • View
    69

  • Download
    0

Embed Size (px)

DESCRIPTION

第 2 章 MATLAB 矩阵及其运算 2.1 变量和数据操作 2.2 MATLAB 矩阵 2.3 MATLAB 运算 2.4 矩阵分析 2.5 字符串 2.6 结构数据和单元数据. 2.1 变量和数据操作. 2.1.1 变量与赋值 1 .变量命名 在 MATLAB 7.0 中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多 63 个字符。在 MATLAB 中,变量名区分字母的大小写。. 2 .赋值语句 (1) 变量 = 表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。 - PowerPoint PPT Presentation

Citation preview

Page 1: 2.1   变量和数据操作

第2章 MATLAB矩阵及其运算2.1

变量和数据操作2.2 MATLAB矩阵2.3 MATLAB运算2.4 矩阵分析2.5 字符串2.6 结构数据和单元数据

Page 2: 2.1   变量和数据操作

2.1 变量和数据操作

2.1.1 变量与赋值1 .变量命名在 MATLAB 7.0 中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多 63 个字符。在 MATLAB 中,变量名区分字母的大小写。

Page 3: 2.1   变量和数据操作

2 .赋值语句(1) 变量 = 表达式 (2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。

如: a=1 , b=2

a+b

Page 4: 2.1   变量和数据操作

例 2-1 计算表达式的值,并显示计算结果。在 MATLAB 命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))其中 pi 和 i 都是 MATLAB 预先定义的变量,分别代表代表圆周率 π 和虚数单位。输出结果是:z = -0.3488 + 0.3286i

Page 5: 2.1   变量和数据操作

2.1.2 预定义变量

在 MATLAB 工作空间中,还驻留几个由系统本身定义的变量。例如,用 pi 表示圆周率 π 的近似值,用 i , j 表示虚数单位。预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。

Page 6: 2.1   变量和数据操作

2.1.3 内存变量的管理1 .内存变量的删除与修改MATLAB 工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击 Delete 按钮,就能删除这些变量。当选中某些变量后,再单击 Open 按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。

Page 7: 2.1   变量和数据操作

clear 命令用于删除 MATLAB 工作空间中的变量。 who 和 whos 这两个命令用于显示在MATLAB 工作空间中已经驻留的变量名清单。 who 命令只显示出驻留变量的名称,whos 在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。

练习: open 、 clear 、 who 、 whos

Page 8: 2.1   变量和数据操作

2 .内存变量文件利用 MAT 文件可以把当前 MATLAB 工作空间中的一些有用变量长久地保留下来,扩展名是 .mat 。 MAT 文件的生成和装入由 save 和 load 命令来完成。常用格式为:save 文件名 [ 变量名表 ] [-append][-ascii]load 文件名 [ 变量名表 ] [-ascii]

Page 9: 2.1   变量和数据操作

其中,文件名可以带路径,但不需带扩展名 .mat ,命令隐含一定对 .mat 文件进行操作。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。 -ascii 选项使文件以 ASCII 格式处理,省略该选项时文件将以二进制格式处理。 save 命令中的 -append 选项控制将变量追加到 MAT 文件中。

练习:熟悉 save 和 load 命令

Page 10: 2.1   变量和数据操作

2.1.4 MATLAB 常用数学函数MATLAB 提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数使用说明:(1) 三角函数以弧度为单位计算。 sin(pi/2)(2) abs 函数可以求实数的绝对值、复数的模、字符串的 ASCII 码值。(3) 用于取整的函数有 fix 、 floor 、 ceil 、round ,要注意它们的区别。(4) rem 与 mod 函数的区别。 rem(x,y) 和 mod(x,y) 要求 x,y 必须为相同大小的实矩阵或为标量。

Page 11: 2.1   变量和数据操作

2.1.5 数据的输出格式 MATLAB 用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。 在一般情况下, MATLAB 内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用 format 命令设置或改变数据输出格式。 format 命令的格式为: format 格式符其中格式符决定数据的输出格式

% 如 long 、 short 、 hex 、 rat(输出有理数)

Page 12: 2.1   变量和数据操作

2.2 MATLAB 矩阵

2.2.1 矩阵的建立1 .直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

Page 13: 2.1   变量和数据操作

2 .利用 M 文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个 M 文件。下面通过一个简单例子来说明如何利用 M 文件创建矩阵。

Page 14: 2.1   变量和数据操作

例 2-2 利用 M 文件建立MYMAT 矩阵。(1) 启动有关编辑程序或 MATLAB 文本编辑器,并输入待建矩阵: (2) 把输入的内容以纯文本方式存盘 (设文件名为 mymatrix.m) 。 (3) 在 MATLAB 命令窗口中输入 mymatrix ,即运行该 M 文件,就会自动建立一个名为 MYMAT 的矩阵,可供以后使用。

Page 15: 2.1   变量和数据操作

• 3 .利用 txt 文件建立矩阵利用文本编辑生成。注意提示: txt

文件中不含变量名称,文件名即为矩阵变量名,每行的个数必须相等。

练习:利用 txt 文件建立矩阵

Page 16: 2.1   变量和数据操作

4 .利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3其中 e1 为初始值, e2 为步长, e3 为终止值。

在 MATLAB 中,还可以用 linspace 函数产生行向量。其调用格式为:linspace(a,b,n)

其中 a 和 b 是生成向量的第一个和最后一个元素, n 是元素总数。显然, linspace(a,b,n) 与 a:(b-a)/(n-1):b 等价。如: a(1:1:10)=10:10:100 (请体会)

5 .建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。

如: A=[a,a] %a 为矩阵

Page 17: 2.1   变量和数据操作

2.2.2 矩阵的拆分1 .矩阵元素 通过下标引用矩阵的元素,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在 MATLAB 中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如A=[1,2,3;4,5,6];A(3)显然,序号 (Index) 与下标 (Subscript ) 是一一对应的,以 m×n 矩阵 A 为例,矩阵元素 A(i,j) 的序号为 (j-1)*m+i 。其相互转换关系也可利用 sub2ind 和 ind2sub 函数求得。思考:这两个命令怎么用?

Page 18: 2.1   变量和数据操作

2 .矩阵拆分 (1) 利用冒号表达式获得子矩阵 ① A(:,j) 表示取 A 矩阵的第 j 列全部元素; A(i,:) 表示A 矩阵第 i 行的全部元素; A(i,j) 表示取 A 矩阵第 i 行、第 j 列的元素。 ② A(i:i+m,:) 表示取 A 矩阵第 i~ i+m 行的全部元素;A(:,k:k+m) 表示取 A 矩阵第 k~ k+m 列的全部元素, A(i:i+m,k:k+m) 表示取 A 矩阵第 i~ i+m 行内,并在第k~ k+m 列中的所有元素。

此外,还可利用一般向量和 end 运算符来表示矩阵下标,从而获得子矩阵。 end 表示某一维的末尾元素下标。

Page 19: 2.1   变量和数据操作

(2) 利用空矩阵删除矩阵的元素 在 MATLAB 中,定义 [] 为空矩阵。给变量 X 赋空矩阵的语句为 X=[] 。注意, X=[]与 clear X 不同, clear 是将 X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为 0 。

Page 20: 2.1   变量和数据操作

2.2.3 特殊矩阵1 .通用的特殊矩阵常用的产生通用特殊矩阵的函数有:zeros :产生全 0 矩阵 (零矩阵 ) 。ones :产生全 1 矩阵 (幺矩阵 ) 。eye :产生单位矩阵。rand :产生 0~ 1 间均匀分布的随机矩阵。randn :产生均值为 0 ,方差为 1 的标准正态分布随机矩阵。

Page 21: 2.1   变量和数据操作

例 2-3 分别建立 3×3 、 3×2 和与矩阵 A 同样大小的零矩阵。(1) 建立一个 3×3零矩阵。zeros(3) (2) 建立一个 3×2零矩阵。zeros(3,2) (3) 设 A 为 2×3 矩阵,则可以用 zeros(size(A))建立一个与矩阵 A 同样大小零矩阵。A=[1 2 3;4 5 6]; %产生一个 2×3阶矩阵 Azeros(size(A)) %产生一个与矩阵 A 同样大小的零矩阵

Page 22: 2.1   变量和数据操作

例 2-4 建立随机矩阵:(1) 在区间 [20,50] 内均匀分布的 5阶随机矩阵。(2) 均值为 0.6 、方差为 0.1 的 5阶正态分布随机矩阵。命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有 reshape(A,m,n) ,它在矩阵总元素保持不变的前提下,将矩阵 A 重新排成m×n 的二维矩阵。

Page 23: 2.1   变量和数据操作

• 2 .用于专门学科的特殊矩阵( 1)魔方矩阵 magic(n) ( 2)对角阵 diag( v , k)( 3)三角阵 tril( A)( 4)希尔伯特( Hilbert)矩阵 hilb(n)

逆希尔伯特矩阵 invhilb(n) % 求 n阶的希尔伯特矩阵的逆矩阵( 5)托普利兹( Toeplitz)矩阵 toeplitz(x);toeplitz(x,y)以上矩阵的调用格式参见 P46-49 。

Page 24: 2.1   变量和数据操作

• 例 2-6 求 4阶希尔伯特矩阵及其逆矩阵。命令如下:format rat % 以有理形式输出H=hilb(4)H=invhilb(4)

Page 25: 2.1   变量和数据操作

• ( 6)范得蒙( Vandermonde)矩阵 A=vander(B); % 如 A=vander([1;2;3;5])

• 范得蒙 (Vandermonde) 矩阵最后一列全为 1 ,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在 MATLAB 中,函数 vander(V) 生成以向量 V 为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5]) 即可得到上述范得蒙矩阵。

补充:

Page 26: 2.1   变量和数据操作

• ( 7)伴随矩阵• MATLAB 生成伴随矩阵的函数是 co

mpan(p) ,其中 p 是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的 x3-7x+6 的伴随矩阵,可使用命令:

• p=[1,0,-7,6];

• compan(p)

Page 27: 2.1   变量和数据操作

• ( 8)帕斯卡( Pascal)矩阵• 我们知道,二次项 (x+y)n 展开后的系数随

n 的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡 (Pascal)矩阵。函数 pascal(n) 生成一个 n阶帕斯卡矩阵。

• 例 2-7 求 (x+y)5 的展开式。• 在 MATLAB 命令窗口,输入命令:• pascal(6) 思考:为什么是 6?• 矩阵次对角线上的元素 1,5,10,10,5,1 即为

展开式的系数。

Page 28: 2.1   变量和数据操作

2.3.1 算术运算1 .基本算术运算 MATLAB 的基本算术运算有:+ ( 加 ) 、- (减 ) 、 *(乘 ) 、 /(右除 ) 、 \(左除 ) 、^(乘方 ) 。注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。

2.3 MATLAB运算

Page 29: 2.1   变量和数据操作

• (1) 矩阵加减运算 A+B A-B

要求:维数相同,则 A 和 B 矩阵的相应元素相加减

Page 30: 2.1   变量和数据操作

• (2) 矩阵乘法 A)两个矩阵相乘 A*B要求: A 的列数和 B 的行数相等B)矩阵的数乘 x*A %x 与 A 的各个元素分

别相乘C)点乘 A.*B要求:维数相同的向量或矩阵,对应元素对应相乘D)内积 dot( A , B); dot( A ,

B , dim) % A×B=ATB要求:向量长度或矩阵维数相同(同为 m x n 维

阵)。

Page 31: 2.1   变量和数据操作

E)叉积 cross( A , B); cross( A ,B , dim)F)混合积 X=a.( b x c)G)卷积多项式乘法 w=conv( u , v)P=ploy2str( w ,’ s’)% 将卷积 w 表示成 s 的多项式H)解卷多项式除法[q , r]=deconv( v , u)I)张量积 C=kron( A , B) %Amxn , Bpxq ,不同维矩阵的相乘

Page 32: 2.1   变量和数据操作

• (3) 矩阵除法在 MATLAB 中,有两种矩阵除法运算: \ 和 / ,分

别表示左除和右除。如果 A 矩阵是非奇异方阵,则 A\B和 B/A 运算可以实现。

A\B 等效于 A 矩阵的逆左乘 B 矩阵,也就是 inv(A)*B ,相当于 A*x = B 的解;

• B/A 等效于 A 矩阵的逆右乘 B 矩阵,也就是 B*inv(A) ,相当于 x*A = B 的解。

• 注意:对于含有标量的运算,两种除法运算的结果相同,如 3/4 和 4\3 有相同的值,都等于 0.75 。如,设 a=[10.5,25] ,则 a/5=5\a=[2.1000 5.0000] 。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般 A\B≠B/A 。

Page 33: 2.1   变量和数据操作

(4) 矩阵的乘方 一个矩阵的乘方运算可以表示成 A^x ,要求 A 为方阵, x 为标量。2 .点运算 在 MATLAB 中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有 .* 、 ./ 、 .\ 和 .^ 。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。

Page 34: 2.1   变量和数据操作

2.3.2 关系运算 MATLAB 提供了 6种关系运算符: <( 小于 ) 、 <=( 小于或等于 ) 、 >( 大于 ) 、>=( 大于或等于 ) 、 ==( 等于 ) 、~ =( 不等于 ) 。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。

Page 35: 2.1   变量和数据操作

关系运算符的运算法则为: (1) 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为 1 ,否则为 0 。 (2) 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由 0或 1组成。

Page 36: 2.1   变量和数据操作

(3) 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由 0或 1组成。

Page 37: 2.1   变量和数据操作

例 2-8 产生 5阶随机方阵 A ,其元素为 [10,90]区间的随机整数,然后判断 A 的元素是否能被 3整除。 (1) 生成 5阶随机方阵 A 。A=fix((90-10+1)*rand(5)+10) (2) 判断 A 的元素是否可以被 3 整除。 P=rem(A,3)==0其中, rem(A,3) 是矩阵 A 的每个元素除以 3 的余数矩阵。此时, 0被扩展为与 A 同维数的零矩阵,P 是进行等于 (==)比较的结果矩阵。

Page 38: 2.1   变量和数据操作

2.3.3 逻辑运算 MATLAB 提供了 3种逻辑运算符: &( 与 ) 、 |( 或 )和~ (非 ) 。 逻辑运算的运算法则为: (1) 在逻辑运算中,确认非零元素为真,用 1 表示,零元素为假,用 0 表示。 (2) 设参与逻辑运算的是两个标量 a 和 b ,那么, a&b a,b 全为非零时,运算结果为 1 ,否则为 0 。 a|b a,b 中只要有一个非零,运算结果为 1 。 ~ a 当 a 是零时,运算结果为 1;当 a非零时,运算结果为 0 。

Page 39: 2.1   变量和数据操作

(3) 若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由 1 或 0组成。

(4) 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由 1 或 0组成。

Page 40: 2.1   变量和数据操作

(5) 逻辑非是单目运算符,也服从矩阵运算规则。

(6) 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。

Page 41: 2.1   变量和数据操作

例 2-9 建立矩阵 A ,然后找出大于 4 的元素的位置。(1) 建立矩阵 A 。A=[4,-65,-54,0,6;56,0,67,-45,0] (2) 找出大于 4 的元素的位置。find(A>4)

Page 42: 2.1   变量和数据操作

2.4.1 矩阵的转置与旋转1 .矩阵的转置转置运算符是单撇号 (‘) 。2 .矩阵的旋转利用函数 rot90(A,k) 将矩阵 A旋转 90º 的 k倍,当 k 为 1 时可省略。

2.4 矩阵分析

Page 43: 2.1   变量和数据操作

3 .矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依次类推。 MATLAB 对矩阵 A实施左右翻转的函数是 fliplr(A) 。

4 .矩阵的上下翻转MATLAB 对矩阵 A 实施上下翻转的函数是flipud(A) 。

Page 44: 2.1   变量和数据操作

2.4.2 矩阵的逆与伪逆1 .矩阵的逆

对于一个方阵 A ,如果存在一个与其同阶的方阵 B ,使得:A·B=B·A=I (I 为单位矩阵 )则称 B 为 A 的逆矩阵,当然, A 也是 B 的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在MATLAB 中,求一个矩阵的逆非常容易。求方阵 A 的逆矩阵可调用函数 inv(A) 。例 2-10 用求逆矩阵的方法解线性方程组。Ax=b其解为:x=A-1b

Page 45: 2.1   变量和数据操作

2 .矩阵的伪逆如果矩阵 A 不是一个方阵,或者 A 是一个非满秩的方阵时,矩阵 A没有逆矩阵,但可以找到一个与 A 的转置矩阵 A‘ 同型的矩阵 B ,使得:A·B·A=AB·A·B=B此时称矩阵 B 为矩阵 A 的伪逆,也称为广义逆矩阵。在 MATLAB 中,求一个矩阵伪逆的函数是 pinv(A) 。

Page 46: 2.1   变量和数据操作

2.4.3 方阵的行列式把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在 MATLAB 中,求方阵A 所对应的行列式的值的函数是 det(A) 。

Page 47: 2.1   变量和数据操作

2.4.4 矩阵的秩与迹1 .矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。在 MATLAB 中,求矩阵秩的函数是 rank(A) 。2 .矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在 MATLAB 中,求矩阵的迹的函数是 trace(A) 。

Page 48: 2.1   变量和数据操作

3 .条件数: cond(A); cond(A,p)

c= cond(A) 求矩阵A的2-范数的条件数; c= cond(A,p) 表示求矩阵A的 p-范数的条件数, p 可以是1、 2 、 inf 或者‘ fro’ 。

提示:线性方程组 Ax=b 的条件数是大于或等于 1 的实数、用来衡量数据扰动、即 A或 b 对解 X 的灵敏度,差条件方程组的条件数很大。

Page 49: 2.1   变量和数据操作

2.4.5 矩阵的特征值与特征向量在 MATLAB 中,计算矩阵 A 的特征值和特征向量的函数是 eig(A) ,常用的调用格式有 3种:(1) E=eig(A) :求矩阵 A 的全部特征值,构成向量 E 。(2) [V,D]=eig(A) :求矩阵 A 的全部特征值,构成对角阵 D ,并求 A 的特征向量构成 V的列向量。

Page 50: 2.1   变量和数据操作

(3) [V,D]=eig(A,‘nobalance’) :与第 2种格式类似,但第 2种格式中先对 A 作相似变换后求矩阵 A 的特征值和特征向量,而格式 3 直接求矩阵 A 的特征值和特征向量。

Page 51: 2.1   变量和数据操作

例 2-11 用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0p=[3,-7,0,5,2,-18];A=compan(p); %A 的伴随矩阵x1=eig(A) % 求 A 的特征值x2=roots(p) % 直接求多项式 p 的零点

Page 52: 2.1   变量和数据操作

在 MATLAB 中,字符串是用单撇号括起来的字符序列。MATLAB 将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。

2.5 字符串

Page 53: 2.1   变量和数据操作

字符串是以 ASCII 码形式存储的。 abs 和 double 函数都可以用来获取字符串矩阵所对应的 ASCII 码数值矩阵。相反, char 函数可以把 ASCII 码矩阵转换为字符串矩阵。

Page 54: 2.1   变量和数据操作

例 2-12 建立一个字符串向量,然后对该向量做如下处理:(1) 取第 1~ 5 个字符组成的子字符串。(2) 将字符串倒过来重新排列。(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。(4) 统计字符串中小写字母的个数。

Page 55: 2.1   变量和数据操作

命令如下:ch=‘ABc123d4e56Fg9’;subch=ch(1:5) % 取子字符串revch=ch(end:-1:1) % 将字符串倒排k=find(ch>=‘a’&ch<=‘z’); %找小写字母的位置ch(k)=ch(k)-(‘a’-‘A’); % 将小写字母变成相应的大写字母char(ch) length(k) % 统计小写字母的个数

Page 56: 2.1   变量和数据操作

与字符串有关的另一个重要函数是 eval ,其调用格式为: eval(t)其中 t 为字符串。它的作用是把字符串的内容作为对应的 MATLAB 语句来执行。

Page 57: 2.1   变量和数据操作

2.6.1 结构数据1 .结构矩阵的建立与引用结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。建立一个结构矩阵可采用给结构成员赋值的办法。具体格式为:结构矩阵名 . 成员名 = 表达式其中表达式应理解为矩阵表达式。

如: student=rmfield(student,'age');

2.6 结构数据和单元数据

Page 58: 2.1   变量和数据操作

2 .结构成员的修改可以根据需要增加或删除结构的成员。例如要给结构矩阵a增加一个成员 x4 ,可给 a 中任意一个元素增加成员 x4 :

a(1).x4=‘410075’;但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。要删除结构的成员,则可以使用 rmfield 函数来完成。例如,删除成员 x4 :a=rmfield(a,‘x4’);

3 .关于结构的函数除了一般的结构数据的操作外, MATLAB 还提供了部分函数来进行结构矩阵的操作。

Page 59: 2.1   变量和数据操作

2.6.2 单元数据1 .单元矩阵的建立与引用建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。可以用带有大括号下标的形式引用单元矩阵元素。例如 b{3,3} 。单元矩阵的元素可以是结构或单元数据。可以使用 celldisp 函数来显示整个单元矩阵,如 celldisp(b) 。还可以删除单元矩阵中的某个元素。

如: A={'反对霸权 ','Wind Gone',100+200*i,[90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78]}

Page 60: 2.1   变量和数据操作

2 .关于单元的函数MATLAB 还提供了部分函数用于单元的操作。