1.2 数据基础
MATLAB的基本数据类型主要包括:数字、字符串、向量、矩阵、单元型数据及结构型数据。矩阵是MATLAB语言中最基本的数据类型,从本质上讲它是数组。向量可以看作只有一行或一列的矩阵(或数组);数组也可以看作矩阵,即一行一列的矩阵。
1.2.1 变量
变量是任何程序设计语言的基本元素之一,MATLAB语言当然也不例外。与常规的程序设计语言不同的是,MATLAB并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MAT-LAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型。在赋值过程中,如果赋值变量已存在,则MATLAB将使用新值代替旧值,并以新值类型代替旧值类型。在MAT-LAB中变量的命名应遵循如下规则。
◆变量名必须以字母开头,之后可以是任意的字母、数字或下画线。
◆变量名区分字母的大小写。
◆变量名不超过31个字符,第31个字符以后的字符将被忽略。
与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题。在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效。
若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说,全局变量均用大写的英文字符表示。
例1-2:显示全局变量。
解:在MATLAB命令行窗口提示符“>>”后输入程序,然后按<Enter>键,出现以下内容。
MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量。表1-5和表1-6给出了MATLAB语言中经常使用的一些特殊变量和基本符号。
例1-3:显示圆周率pi的值。
解:在MATLAB命令行窗口提示符“>>”后输入pi,然后按<Enter>键,出现以下内容。
这里“ans”是指当前的计算结果,若计算时用户没有对表达式指定变量,系统就自动将当前结果赋值给“ans”变量。
在定义变量时应避免与常量名相同,以免改变这些常量的值。如果已经改变了某个常量的值,可以通过“clear+常量名”命令恢复该常量的初始设定值。当然,重新启动MATLAB也可以恢复这些常量值。
表1-5 MATLAB中的特殊变量
表1-6 MATLAB中的基本符号
例1-4:给圆周率pi赋值1,然后恢复。
解:MATLAB程序如下。
1.2.2 向量
向量的生成有直接输入法、冒号法和函数创建三种方法。
1.直接输入法
生成向量最直接的方法就是在命令行窗口中直接输入。格式要求如下。
◆向量元素需要用“[]”括起来。
◆元素之间可以用以空格、逗号或分号分隔。
说明:
用空格和逗号分隔生成行向量,用分号分隔形成列向量。
例1-5:向量生成的直接输入法示例。
解:MATLAB程序如下。
又如用分号分隔,程序如下。
2.冒号法
基本格式是x=first:increment:last,表示创建一个从first开始,到last结束,数据元素的增量为increment的向量。若增量为1,创建向量的方式简写为x=first:last。
例1-6:创建一个从0开始,增量为2,到10结束的向量x。
解:MATLAB程序如下。
3.函数创建
(1)利用函数linspace创建向量
linspace通过直接定义数据元素个数,而不是数据元素直接的增量来创建向量。此函数的调用格式如下。
linspace(first_value,last_value,number)
该调用格式表示创建一个从first_value开始,到last_value结束,包含number个元素的向量。
例1-7:创建一个从0开始,到10结束,包含6个数据元素的向量x。
(2)利用函数logspace创建一个对数分隔的向量
与linspace一样,logspace也通过直接定义向量元素个数,而不是数据元素之间的增量来创建数组。logspace的调用格式如下。
y=logspace(a,b)
该调用格式表示创建一个从10a开始,到10b结束的50个对数间距点组成的行向量y。
y=logspace(a,b,n)
该调用格式表示创建一个从10a开始,到10b结束的n个对数间距点组成的行向量y。
y=logspace(a,pi)
该调用格式表示创建一个从10a开始,到pi结束的50个对数间距点组成的行向量y。
y=logspace(a,pi,n)
该调用格式表示创建一个从10a开始,到pi结束的n个对数间距点组成的行向量y。
例1-8:创建一个从10开始,到103结束,包含3个数据元素的向量x。
解:MATLAB程序如下。
向量元素引用的方式见表1-7。
表1-7 向量元素引用的方式
例1-9:向量元素的引用示例。
解:MATLAB程序如下。
1.2.3 矩阵
MATLAB即Matrix Laboratory(矩阵实验室)的缩写,可见该软件在处理矩阵问题上的优势。本节主要介绍如何用MATLAB来进行“矩阵实验”,即如何生成矩阵,如何对已知矩阵进行各种变换等。
在键盘上直接按行方式输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点。
◆输入矩阵时要以“[]”为其标识符号,矩阵的所有元素必须都在括号内。
◆矩阵同行元素之间由空格(个数不限)或逗号分隔,行与行之间用分号或<Enter>键分隔。
◆矩阵大小不需要预先定义。
◆矩阵元素可以是运算表达式。
◆若“[]”中无元素,表示空矩阵。
◆如果不想显示中间结果,可以用“;”结束。
例1-10:创建一个带有运算表达式的矩阵。
解:MATLAB程序如下。