简介
本文记录了在MATLAB学习过程中所需要认识和了解的基本数据类型。
1、数值类型
(1)整数类型:分为有符号int和无符号uint两种,位数有8、16、32、64。对于非整数类型的数值,可以通过转换函数进行相互转换,例如向下取整floor(x),向上取整ceil(x),最接近整数取整round(x),向0取整fix(x)。
(2)浮点数类型:分为单精度和双精度。单精度为32位宽;双精度为64位宽。双精度浮点数运算结果由其它参与运算的数据类型决定:逻辑型、字符型—双精度;整数型—整数类型;单精度浮点型—单精度浮点型。
(3)复数:实部real(z)、虚部image(z)、模abs(z)、复数幅角angle(z)、共轭复数conj(z)、以a为实部、b为虚部创建复数。
(4)无穷量和非数值量。
2、逻辑类型
(1)逻辑类型同C语言。
(2)逻辑类型运算不同于数值类型的运算。
3、字符和字符串
1 | >>String = 'Every good boy does have fun.'; |
代码结果:ans = 1 29。其中1是1行,29代表29列;在字符串中,空格也是占用一个字符位置。字符串是数值数组,可以用数组操作工具进行操作。
1 | >>String = 'It''s not the manual' |
代码结果:String = ‘It’s not the manual’。字符串中单引号可以用两个连续的单引号表示。
1 | >> A='Hello,'; |
代码结果:C= ‘Hello,world.’。字符串的连接可以用两个字符串数组连接。
4、函数句柄
在MATLAB中直接调用函数:直接采用和M文件同名的子函数或者在主文件中定义好的函数,需要严格按照函数名。
在MATLAB中间接调用函数:采用操作符@,将函数保存到一个变量中,无需严格按照函数名,按照变量名使用函数即可。
1 | >> F_Handle=@cos; |
可以看到,这里采用了F_Handle函数调用了cos函数。
5、结构体类型
(1)通过字段赋值创建结构体。
(2)通过struct函数创建结构体。
语法:s=struct(‘field1’,‘data1’,‘field2’,‘data2’……)。其中s是结构体的名称,s(1)表示结构体每个字段对应的第一个值,s(2)表示结构体每个字段对应的第二个值……以此类推。
1 | >> Schedule=struct('Day',{'Monday','Tuesday','Wednesday'},'Time','15:00','Number',18); |
查看结构体的组成:
1 | >> Schedule |
6、数组类型
MATLAB运算所有的数据类型都是按照数组及矩阵的形式进行存储和运算的,在形式上和矩阵的表达形式较为相同,但是与矩阵运算所使用的线性代数的运算不同。
(1)赋值创建数组
1 | >> A=[1 2 3 4 5 6] |
(2)使用“:”创建数组
句法格式:Array = i : j : k,其中i是创建数组的起始值;j是步长,表示相邻元素之间的间隔,当j=0时,数组按照步长j=1进行创建数组;k是创建数组的终值。
1 | >> A=1:6 |
MATLAb中的linspace可以用于产生x1,x2之间的N点行线性的矢量,表达式为linspace(x1,x2,N),其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100。
N=50:
1 | >> A=linspace(1,100,50) |
默认N:
1 | >> A=linspace(1,100) |
(3)创建空数组
1 | >> A=[] |
空数组主要应用于逻辑运算、数组声明、数组的清空等。
7、单元数组类型
单元数组包括许多类型的数据,组成单元数组的每一个元素称为一个单元,每个单元可由不同类型的数据构成。
(1)赋值创建单元数组
1 | >> A={'x', [1,2,3];10, pi} |
(2)利用cell函数创建单元数组
1 | >> A=cell(3,3) |
(3)对单元数组进行寻访
(4)对单元数组进行操作
单元数组的操作包括合并、删除单元数组指定单元、改变单元数组的形状等。
8、map容器类型
map的本意是映射,就是将一个量映射到另一个量。例如将字符串映射为一个数值,这个字符串是map的键(key),被映射的数值就是map的数据(value)。