>>Data Data= 9998100 Whos”用于显示当前 MATLAB工作空间的变量,而在命令窗口中输入data后,将 显示该数据。在命令窗口或M文件中调用相应的函数也可以实现数据的读入 例如 >>[ab,c,d= -textread( text txt,“%s%s%s%s; headlines,2)(读者可亲自上机 看结果)
>>Data Data = 99 98 100 98 89 70 80 90 97 77 65 87 “whos”用于显示当前 MATLAB 工作空间的变量,而在命令窗口中输入 data 后,将 显示该数据。在命令窗口或 M 文件中调用相应的函数也可以实现数据的读入。 例如: >> [a,b,c,d]=textread(‘text.txt’, ‘%s %s %s %s’, ‘headlines’, 2) (读者可亲自上机 看结果)
§4 MATLAB数值计算功能 MA∏LAB强大的数值计算功能使其在诸多数学计算软件中傲视群雄,是 MATLAB 软件的基础。本节将简要介绍 MATLAB的数据类型、矩阵的建立及运算 41 MATLAB数据类型 MATLAB的数据类型主要包括:数字、字符串、矩阵、单元型数据及结构型数据 等,限于篇幅我们将重点介绍其中几个常用类型。 4.11变量与常量 变量是任何程序设计语言的基本要素之一, MATLAB语言当然也不例外。与常规 的程序设计语言不同的 MATLAB并不要求事先对所使用的变量进行声明,也不需要指 定变量类型, MATLAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别 变量的类型。在赋值过程中如果赋值变量已存在时, MATLAB语言将使用新值代替旧 值,并以新值类型代替旧值类型。 在 MATLAB语言中变量的命名应遵循如下规则 (1)变量名区分大小写。 (2)变量名长度不超31位,第31个字符之后的字符将被 MATLAB语言所忽略 (3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点 与其他的程序设计语言相同,在 MATLAB语言中也存在变量作用域的问题。在未加特 殊说明的情况下, MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的 M文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前 加关键字 global一般来说全局变量均用大写的英文字符表示 MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量。表4-1 给出了 MATLAB语言中经常使用的一些常量值 表4-1 表示数值 常N 圆周率 浮点运算的相对精度 正无穷大 realmax 最大的浮点数 i,j虚数单位 在 MATLAB语言中,定义变量时应避免与常量名重复,以防改变这些常量的值,如果 已改变了某外常量的值,可以通过“ clear+常量名”命令恢复该常量的初始设定值(当 然,也可通过重新启动MA∏LAB系统来恢复这些常量值)
§4 MATLAB 数值计算功能 MATLAB 强大的数值计算功能使其在诸多数学计算软件中傲视群雄,是 MATLAB 软件的基础。本节将简要介绍 MATLAB 的数据类型、矩阵的建立及运算。 4.1 MATLAB 数据类型 MATLAB 的数据类型主要包括:数字、字符串、矩阵、单元型数据及结构型数据 等,限于篇幅我们将重点介绍其中几个常用类型。 4.1.1 变量与常量 变量是任何程序设计语言的基本要素之一,MATLAB 语言当然也不例外。与常规 的程序设计语言不同的 MATLAB 并不要求事先对所使用的变量进行声明,也不需要指 定变量类型,MATLAB 语言会自动依据所赋予变量的值或对变量所进行的操作来识别 变量的类型。在赋值过程中如果赋值变量已存在时,MATLAB 语言将使用新值代替旧 值,并以新值类型代替旧值类型。 在 MATLAB 语言中变量的命名应遵循如下规则: (1)变量名区分大小写。 (2)变量名长度不超 31 位,第 31 个字符之后的字符将被 MATLAB 语言所忽略。 (3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。 与其他的程序设计语言相同,在 MATLAB 语言中也存在变量作用域的问题。在未加特 殊说明的情况下,MATLAB 语言将所识别的一切变量视为局部变量,即仅在其使用的 M 文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前 加关键字 global。一般来说全局变量均用大写的英文字符表示。 MATLAB 语言本身也具有一些预定义的变量,这些特殊的变量称为常量。表 4-1 给出了 MATLAB 语言中经常使用的一些常量值。 表 4-1 常 量 表 示 数 值 pi 圆周率 eps 浮点运算的相对精度 inf 正无穷大 NaN 表示不定值 realmax 最大的浮点数 i, j 虚数单位 在 MATLAB 语言中,定义变量时应避免与常量名重复,以防改变这些常量的值,如果 已改变了某外常量的值,可以通过“clear+常量名”命令恢复该常量的初始设定值(当 然,也可通过重新启动 MATLAB 系统来恢复这些常量值)
4.12数字变量的运算及显示格式 MALAB是以矩阵为基本运算单元的,而构成数值矩阵的基本单元是数字。为了 更好地学习和掌握矩阵的运算,首先对数字的基本知识作简单的介绍。 对于简单的数字运算,可以直接在命令窗口中以平常惯用的形式输入,如计算 和3的乘积再加1时,可以直接输入 >>1+2*3 ans- 这里“ans”是指当前的计算结果,若计算时用户没有对表达式设定变量,系统就自动 赋当前结果给“ans”变量。用户也可以输入 >>a=1+2*3 7 此时系统就把计算结果赋给指定的变量a了。 MA∏LAB语言中数值有多种显示形式,在缺省情况下,若数据为整数,则就以整 数表示;若数据为实数,则以保留小数点后4位的精度近似表示。 MATLAB语言提供 了10种数据显示格式,常用的有下述几种格式: 小数点后4位(系统默认值) 小数点后14位 short e 5位指数形式 15位指数形式 MA∏LAB语言还提供了复数的表达和运算功能。在 MATLAB语言中,复数的基 本单位表示为i或j。在表达简单数数值时虚部的数值与i、j之间可以不使用乘号,但 是如果是表达式,则必须使用乘号以识别虚部符号 41.3字符串 字符和字符串运算是各种高级语言必不可少的部分, MATLAB中的字符串是其进 行符号运算表达式的基本构成单元。 在 MATLAB中,字符串和字符数组基本上是等价的:所有的字符串都用单引号进 行输入或赋值(当然也可以用函数char来生成)。字符串的每个字符(包括空格)都是 字符数组的一个元素。例如: >>S=matrix laboratory matrix laboratory %size查看数组的维数 ans- 另外,由于 MATLAB对字符串的操作与C语言几乎完全相同这里不在赘述
4.1.2 数字变量的运算及显示格式 MALAB 是以矩阵为基本运算单元的,而构成数值矩阵的基本单元是数字。为了 更好地学习和掌握矩阵的运算,首先对数字的基本知识作简单的介绍。 对于简单的数字运算,可以直接在命令窗口中以平常惯用的形式输入,如计算 2 和 3 的乘积再加 1 时,可以直接输入: >> 1+2*3 ans= 7 这里“ans”是指当前的计算结果,若计算时用户没有对表达式设定变量,系统就自动 赋当前结果给“ans”变量。用户也可以输入: >> a=1+2*3 a= 7 此时系统就把计算结果赋给指定的变量 a 了。 MATLAB 语言中数值有多种显示形式,在缺省情况下,若数据为整数,则就以整 数表示;若数据为实数,则以保留小数点后 4 位的精度近似表示。MATLAB 语言提供 了 10 种数据显示格式,常用的有下述几种格式: short 小数点后 4 位(系统默认值) long 小数点后 14 位 short e 5 位指数形式 long e 15 位指数形式 MATLAB 语言还提供了复数的表达和运算功能。在 MATLAB 语言中,复数的基 本单位表示为 i 或 j。在表达简单数数值时虚部的数值与 i、j 之间可以不使用乘号,但 是如果是表达式,则必须使用乘号以识别虚部符号。 4.1.3 字符串 字符和字符串运算是各种高级语言必不可少的部分,MATLAB 中的字符串是其进 行符号运算表达式的基本构成单元。 在 MATLAB 中,字符串和字符数组基本上是等价的;所有的字符串都用单引号进 行输入或赋值(当然也可以用函数 char 来生成)。字符串的每个字符(包括空格)都是 字符数组的一个元素。例如: >>s=’matrix laboratory’; s= matrix laboratory >> size(s) % size 查看数组的维数 ans= 1 17 另外,由于 MATLAB 对字符串的操作与 C 语言几乎完全相同这里不在赘述
42矩阵及其运算 矩阵是 MATLAB数据存储的基本单元,而矩阵的运算是 MATLAB语言的核心, 在 MATLAB语言系统中几乎一切运算均是以对矩阵的操作为基础的。下面重点介绍矩 阵的生成、矩阵的基本运算和矩阵的数组运算 42.1矩阵的生成 直接输入法 从键盘上直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小 的简单矩阵。在用此方法创建矩阵时,应当注意以下几点 输入矩阵时要以“[]”为其标识符号,矩阵的所有元素必须都在括号内。 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔 矩阵大小不需要预先定义 ●矩阵元素可以是运算表达式。 ●若“[]”中无元素表示空矩阵。 另外,在 MATLAB语言中冒号的作用是最为丰富的。首先,可以用冒号来定义行向量 例如 >>a=1:0.5:4 Columns 1 through 7 2.5 3.5 其次,通过使用冒号,可以截取指定矩阵中的部分。 例如 >>A=123;456;789 >>B=A(1:2,;) 6 通过上例可以看到B是由矩阵A的1到2行和相应的所有列的元素构成的一个新 的矩阵。在这里,冒号代替了矩阵A的所有列。 2.外部文件读入法 MATLAB语言也允许用户调用在 MATLAB环境之外定义的矩阵。可以利用任意
4.2 矩阵及其运算 矩阵是 MATLAB 数据存储的基本单元,而矩阵的运算是 MATLAB 语言的核心, 在 MATLAB 语言系统中几乎一切运算均是以对矩阵的操作为基础的。下面重点介绍矩 阵的生成、矩阵的基本运算和矩阵的数组运算。 4.2.1 矩阵的生成 1. 直接输入法 从键盘上直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小 的简单矩阵。在用此方法创建矩阵时,应当注意以下几点: ● 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。 ● 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔。 ● 矩阵大小不需要预先定义。 ● 矩阵元素可以是运算表达式。 ● 若“[ ]”中无元素表示空矩阵。 另外,在 MATLAB 语言中冒号的作用是最为丰富的。首先,可以用冒号来定义行向量。 例如: >> a=1:0.5:4 a= Columns 1 through 7 1 1.5 2 2.5 3 3.5 4 其次,通过使用冒号,可以截取指定矩阵中的部分。 例如: >> A=[1 2 3;4 5 6;7 8 9] A= 1 2 3 4 5 6 7 8 9 >> B=A (1:2, : ) B= 1 2 3 4 5 6 通过上例可以看到 B 是由矩阵 A 的 1 到 2 行和相应的所有列的元素构成的一个新 的矩阵。在这里,冒号代替了矩阵 A 的所有列。 2.外部文件读入法 MATLAB 语言也允许用户调用在 MATLAB 环境之外定义的矩阵。可以利用任意
的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分断符分开,并按行列布置。 读入矩阵的一种方法可参考3.3节数据交换系统。另外也可以利用load函数,其调用 方法为:Load+文件名[参数 Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名 的变量,如果不给定文件名,则将自动认为 matlab. mat文件为操作对象,如果该文件 在MA∏LAB搜索路径中不存在时,系统将会报错 例 事先在记事本中建立文件:1 txt保存) 在 MATLAB命令窗口中输入 >>load datal. txt >> data 123 6 3.特殊矩阵的生成 对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结 构, MATLAB提供了一些函数用于生成这些矩阵。常用的有下面几个 生成m阶全0矩阵 生成m阶单位矩阵 生成m阶全1矩阵 rand(m) 生成m阶均匀分布的随机阵 生成m阶正态分布的随机矩阵 42.2矩阵的基本数学运算 矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算 秩运算、特征值运算等基本函数运算,这里进行简单介绍 1.四则运算 矩阵的加、减、乘运算符分别为“+ *”,用法与数字运算几乎相同,但计 算时要满足其数学要求(如:同型矩阵才可以加、减)。 在 MATLAB中矩阵的除法有两种形式:左除“\”和右除“/”。在传统的 MATLAB 算法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算逆矩阵直接进行除运算 通常右除要快一点,但左除可避免被除矩阵的奇异性所带来的麻烦。在MA∏LAB6中
的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分断符分开,并按行列布置。 读入矩阵的一种方法可参考 3.3 节数据交换系统。另外也可以利用 load 函数,其调用 方法为: Load+文件名[参数] Load 函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名 的变量,如果不给定文件名,则将自动认为 matlab.mat 文件为操作对象,如果该文件 在 MATLAB 搜索路径中不存在时,系统将会报错。 例如: 事先在记事本中建立文件: 1 1 1 (并以 data1.txt 保存) 1 2 3 1 3 6 在 MATLAB 命令窗口中输入: >> load data1.txt >> data1 data1= 1 1 1 1 2 3 1 3 6 3.特殊矩阵的生成 对于一些比较特殊的矩阵(单位阵、矩阵中含 1 或 0 较多),由于其具有特殊的结 构,MATLAB 提供了一些函数用于生成这些矩阵。常用的有下面几个: zeros(m) 生成 m 阶全 0 矩阵 eye(m) 生成 m 阶单位矩阵 ones(m) 生成 m 阶全 1 矩阵 rand(m) 生成 m 阶均匀分布的随机阵 randn(m) 生成 m 阶正态分布的随机矩阵 4.2.2 矩阵的基本数学运算 矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、 秩运算、特征值运算等基本函数运算,这里进行简单介绍。 1.四则运算 矩阵的加、减、乘运算符分别为“+,—,*” ,用法与数字运算几乎相同,但计 算时要满足其数学要求(如:同型矩阵才可以加、减)。 在 MATLAB 中矩阵的除法有两种形式:左除“\”和右除“/”。在传统的 MATLAB 算法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算逆矩阵直接进行除运算。 通常右除要快一点,但左除可避免被除矩阵的奇异性所带来的麻烦。在 MATLAB6 中