matlab矩阵数据类型,Matlab数据类型
Matlab中提供了多种数据类型,以供⽤户在不同的情况下使⽤。⽤户可以创建浮点型或者整数型矩阵和数组、字符和字符串、逻辑(true或者false)表达式、函数句柄、结构(structure)数组、元胞(cell)数组、Map容器、⽇期和时间、分类(categorical)数组、表格、时间序列等。在MATLAB中任何⼀种数据类型都以矩阵或者数组的形式来表⽰。这⾥说的矩阵或者数组,是指最⼩的0x0或N维任何⼤⼩的矩阵或者数组;
3.1 数值型
包括有符号和⽆符号整数、单精度和双精度浮点数。默认情况下是双精度浮点数;⽤户不可以更改默认的数据类型和精度,但可以选择⽤⾮默认的整数或者单精度浮点数来存储矩阵或者数组;整数数组和单精度数组⽐双精度数组能节省更多的内存空间,灵活运⽤可以更⾼效地利⽤内存。
所有数值型数组都⽀持基本的数组操作;⽐如数组的重构、使⽤数学运算符等。
数值型数组或矩阵⽐较简单。
3.2 逻辑型
创建逻辑型矩阵或者数组的函数主要有以下三个:
logical函数:可以将任意类型的数组转化为逻辑型。其中⾮零元素为true,零元素为false.
true 函数:产⽣全部元素为逻辑true的数组;
false函数:产⽣全部元素为逻辑false的数组;
例:利⽤函数创建逻辑型数组;
rand('state',0)
a=rand(4,3) %⽣成测试矩阵
a =
0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
matlab数组赋值0.4860 0.0185 0.7919
复制代码
a(a<0.6)=0; %⽣成测试矩阵
a =
0.9501 0.8913 0.8214
0 0.7621 0
0.6068 0 0.6154
0 0 0.7919
复制代码
b=logical(a) %计算逻辑型矩阵b
b =
1 0 1
0 0 1
复制代码
c=true(size(a)) %⽣成全为true的矩阵
c =
1 1 1
1 1 1
1 1 1
1 1 1
复制代码
d=false([size(a),2]) %⽣成全为false的矩阵
d(:,:,1) =
0 0 0
0 0 0
0 0 0
0 0 0
复制代码
d(:,:,2) =
0 0 0
0 0 0
0 0 0
0 0 0
复制代码
whos %查看现有的变量与数据类型
Name Size Bytes Class Attributes
A 3x5 120 double
a 4x3 96 double
ans 1x2 16 double
b 4x3 12 logical
c 4x3 12 logical
d 4x3x2 24 logical
逻辑型数组中每⼀个元素仅占⽤⼀字节的内存空间。所以,尽管矩阵b和矩阵a的⼤⼩⼀样,但是在内存的占⽤上有相当⼤的差距,并且属于不同的数据类型;
下⾯的逻辑运算符或函数将会返回逻辑型的true或者false.
&& 具有短路作⽤的逻辑“与”操作,仅能处理标量;
|| 具有短路作⽤的逻辑“或”操作,仅能处理标量;
& 元素“与”操作
| 元素“或”操作
~ 逻辑“⾮”操作
xor 逻辑“异或”操作
any 当向量中的元素有⾮零元素时,返回true(也就是1)
all 当向量中的元素都是⾮零向量,返回TRUE;
== 关系运算符,等于
~= 关系运算符,不等于
< 关系运算符,⼩于
关系运算符,⼤于
<= 关系运算符,⼩于等于
= 关系运算符,⼤于等于
所有以is开头的函数 判断操作
strcmp、strncmp、strcmpi和strncmpi 字符串⽐较函数
需要说明的是,参与逻辑运算的数组不必是逻辑型变量或常数,也可以是其他类型的数据,但是运算结果⼀定是逻辑型数据。
所谓具有短路作⽤是指:在进⾏&&或||运算时,若参与运算的变量有多个,例如a&&b&&c&&d,并且a,b,c,d这四个变量中的a为false,则后⾯3个变量都不再处理,运算结束,并返回运算结果为false(0),
关系运算符适⽤于各种数据类型的变量或者常数,运算结果是逻辑型数据。标量也可以和矩阵或者数组⽐较,⽐较的时候将⾃动扩展标量,返回的结果是和数组同维的逻辑型数组。如果进⾏⽐较的是两个数组,则数组必须是同维的,且每⼀维的⼤⼩也必须⼀致。
例:逻辑“与”或“⾮”的使⽤。
a=[1 2 3;4 5 6];
b=[1 0 0;0 -2 1];
A=a&b
A =
1 0 0
0 1 1
复制代码
B=a|b
B =
1 1 1
例:函数any 和all的使⽤
a=[1 1 0; 1 0 0;1 0 1]
a =
1 1 0
1 0 0
1 0 1
复制代码
A=all(a) % 每列元素均⾮零时返回true
A =
1 0 0
复制代码
B=any(a) %每列中存在⾮零元素时返回true
B =
1 1 1
复制代码
本例中,⾸先创建数组,因为a的第⼀列均为1,所以all命令返回1;⽽其他列含有0,所以返回0,如结果中A显⽰的那样。any函数在数组⼀列中含有⾮零元素时就会返回逻辑1,所以B中的元素全部为1。
例:isstrprop函数的使⽤。
isstrprop函数可以⽤来判断⼀个字符串中的各字符是否属于某⼀类别,
A =isstrprop('abc123def','alpha')
A =
1 1 1 0 0 0 1 1 1
复制代码
本例中,‘alpna’参数的作⽤就是判断输⼊字符串abc123def中那些元素属于字母,对于字母,相应地返回逻辑true,也就是1,⽽对于数字返回的是false,也就是0.
例:关系运算
a=[0 -1 2];
b=[-3 1 2];
a
ans =
0 1 0
复制代码
a>b %对应元素⽐较⼤⼩,
复制代码
a>=b %对应元素⽐较⼤⼩,
ans =
1 0 1
复制代码
a<=b %对应元素⽐较⼤⼩,
ans =
0 1 1
复制代码
a==b %对应元素相等
ans =
0 0 1
复制代码
a~=b %对应元素不相等
ans =
1 1 0
复制代码
3.2.3 运算符的优先级
下⾯将MATLAB中的运算符和计算优先级,按照从⾼到低的顺序进⾏排列。
(1)括号()。
(2)数组的转换(.'),数组幂(.^),复转置('),矩阵幂(^)。
(3)代数正(+),代数负(-),逻辑⾮(~)。
(4) 数组乘法(.),数组除法(./),矩阵乘法(),矩阵右除(/),矩阵左除().
(5)加法(+),减法(-)。
(6)冒号运算符(:)。
(7)⼩于(),⼤于等于(>=),等于(==),不等于(~=);
(8)元素“与”(&).
(9)元素“或”(|).
(10)短路逻辑“与”(&&)。
(11)短路逻辑“或”(||)。
3.3 字符和字符串
⼏个字符可以构成⼀个字符串,把⼀个字符串视为⼀个⾏向量,⽽字符串中的每⼀个字符(含空格符)则以ASCII的形式存放于此向量的每⼀个元素中,只是他的外显形式仍然是可读的字符,字符串类型在数据的可视化、应⽤程序的交互⽅⾯有着⾮常重要的作⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论