欢迎光临散文网 会员登陆 & 注册

Matlab扫盲小短篇19:多类型数据混合连接和运算的结果类型

2023-07-07 21:29 作者:freexyn_数学建模编程  | 我要投稿

众所周知,Matlab有很多数据类型,包括浮点型、整型、字符型、逻辑型等;现在的问题是,Matlab多类型进行运算和连接后,结果是什么类型呢?下面具体说明。

1.混合连接的结果类型列表

这里所讲的连接,是指矩阵连接,是矩阵或者数组添加元素的常用方式,总体上,除逻辑型外,连接后的类型遵循向下转换的原则;逻辑型除了与自身连接是逻辑型,与其他连接转换成其他型,混合连接类型列表如下:

2.双精度、单精度浮点型与整型、字符型、逻辑型的数组连接

程序示例

>> [100 single(100)]

>> [100 single(100) int8(100)]

>> [100 single(100) int8(100) 'd']

>> [100 true]  %双精度与逻辑型连接

3.整型数据内部连接

程序示例

>> [int8(100) int16(100)]

>> [int16(100) int8(100)]  %遵循最左侧整型类型的原则

>> [int8(-100) uint8(100)] 

>> [uint8(100) int8(-100)]  %右边由有符号变为无符号,仅取到最小值0

4.多类型混合连接

程序示例

>> [true pi int32(10) single(1.23) uint8(345)]  %pi为双精度,int32为整型,混合连接遵循最左侧整型数据类型原则,后面超出int32的数据会相应变化

>> [true pi single(1.23) uint8(345)]  %结果取uint8

5.多个类型数据混合运算后的结果数据类型

总体上,除逻辑型和字符型,混合运算类型遵循向下转换的原则,逻辑型除了与自身运算是逻辑型,与其他运算转换成其他型,混合运算类型列表如下:

6.单精度、双精度浮点型和整型数据混合运算

>> 10+single(10)  %+=

>> 10+int8(10)  %+=

>> %[10 10]+int8(10)  %双精度数组无法与整型相加,报错

7.双精度浮点型和字符型、逻辑型混合运算

>> 10+'d'  %双精度+字符型=双精度

>> 'd'+'d'  %字符型+字符型,先转换为双精度再运算

>> [10,'d']  %复习上节,连接:[双精度 字符型] =字符型

>> 10+true  %双精度+logical=双精度

8.整型数据内部运算

>> int8(10)+int16(10)  %不同类型整型无法相加运算

>> [int8(10),int16(10)].*[int8(10),int8(10)]  %整型数组乘法

>> % [int8(10),int16(10)]*[int8(10);int8(10)]  %矩阵乘法,前面列数等于后面行数,报错:矩阵乘法不完全支持整数类,仅支持参数之一为标量的情况

相关推荐


End

Matlab扫盲小短篇19:多类型数据混合连接和运算的结果类型的评论 (共 条)

分享到微博请遵守国家法律