数据类型
基本的数据类型包括:数值型、字符串、结构数据、单元数据
都是以矩阵形式存在
没有专门的逻辑型数据,以1表示真,以0表示假
数据类型的多样性增强了matlab的表达能力
一.类别:
- 整型:不带小数的数,分为带符号和无符号整数
- 浮点型:带小数的数,分为单精度和双精度,matlab默认使用双精度浮点型
single(x)将x的数据类型转换为单精度,double(x)将x的数据类型转换为双精度 - 复数型:复数,以复数形式存在,如1+2i,包含实部和虚部,默认为双精度,虚数单位为i或j
二.数据的输出格式:
用十进制数表示一个常数,具体可采用日常计数法和科学计数法两种表示方法。输出/显示格式控制:format格式符
格式符决定数据的输出形式,典型的格式符有:
- short:输出小数点后4位,不超过7位有效数字;》1000时,用5位有效数字的科学计数形式输出
- long:15位有效数字
- short e:5位有效数字,用科学计数法输出
- long e:15位有效数字,用科学计数法输出
- rat:近似有理数格式输出
- hex:16进制输出
- +:正数、负数、0分别用±空格表示
- bank:银行存格式输出,用元、角、分表示
format命令只影响数据的输出格式,而不影响数据的计算和存储
默认是以双精度存储
pi
默认以short形式输出
format long
pi
输出格式改变了
三.字符串:
字符串是用单撇号括起来的字符序列
几个字符可以构成一个字符串,如’abc’,‘a’ ‘b’ ‘c’,字符串视为一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵
例如:
xm=' cental south university'
是一个行向量
xm(1:5)
提取前5个字符
四.结构数据:
- 把一组类型不同而逻辑上相关的数据组成一个有机的整体,以便于管理和应用
- 建立一个结构体:结构体名.成员名=表达式
- 成员名对应结构体中的一种类型的数据变量,成为结构体域
把结构体名当作一种类型,类比int
**建立结构体:**用如上操作
employee.name='zhangsan'
employee.age=20
employee.sex='male'
employee.salary=5000
访问结构体域:
也是用点运算
employee.name
结构体数组:
s=struct('name','zhangsan','age',20,'sex','male','salary',5000)
键值对形式,前面是结构体成员,后面是赋值
student=struct('name',{'zhangsan','lisi'},'age',{20,21},'sex',{'male','female'},'salary',{5000,6000})
结构体数组,键值对形式,前面是结构体成员,后面是赋值,用{}括起来
只输出成员是什么
需要用数字指明调用哪一个结构体对象
student(1).name
help struct 查看结构体,help可以查看用法
单元数据:
- 与结构体相似,也是将不同属性的数据封装在一个变量
- 与结构体不同的是,结构数据体的成员都有自己的名字;而单元数据可以视为一个无所不包的矩阵,其中各个元素是不同类型的数据
- 都可以用大括号
例如:
A={[1,2,3;0 5 8;7 2 9],'ANJASDN';3+7i,-pi:pi/4:pi}
是一个2*2的cell矩阵,每个元素都可以是任意类型
表数组:
具有命名变量(变量可以包含不同类型的数据)
相关的matlab函数:
cell2mat:将元胞数组转换为基础数据类型的普通数组
mat2cell:
cell2struct:将元胞数组转换为结构体数组
struct2cell:
cell2table:将元胞数组转换为表数组
table2cell:
变量:
- 变量名以字母开头,后面可以是数字、下划线、字母,最多63
- 字母区分大小写
- matlab提供的标准函数名以及命令名必须用小写字母
例如:
x=sqrt(7)-2i;
y=exp(1/2*pi);
z=(5+cos(47*pi/180)/(1+abs(x-y)))
- 有很多预定义变量
- 应与预定义变量区分:ans、pi、i、j、inf、Inf、NaN、nan、nargin、nargout、realmax
变量的管理:
- 工作区专门用于内存变量的管理。工作区窗口可以显示所有内存变量的属性
- who 命令可以列出所有内存变量
- whos 命令可以列出所有内存变量的属性(大小、数据类型等)
- clear 命令可以删除一个内存变量
例如:
who
whos
clear