目录
众所周知,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.多个类型数据混合运算后的结果数据类型
总体上,除逻辑型和字符型,混合运算类型遵循向下转换的原则,逻辑型除了与自身运算是逻辑型,与其他运算转换成其他型,混合运算类型列表如下:
| 运算数类型 | 运算数类型 | 结果类型 |
| double | int(uint) | int(uint) |
| single | single | |
| double | double | |
| char | double | |
| logical | double | |
| single | single | single |
| char | single | |
| logical | single |
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)] %矩阵乘法,前面列数等于后面行数,报错:矩阵乘法不完全支持整数类,仅支持参数之一为标量的情况
相关视频
1.29/Matlab混合运算的数据类型/不仅是小白,学了多年的大白也不清楚的知识点
1.28/Matlab数据混合连接列表/多种数据类型混合连接运算/这个内容很重要!
End

文章详细阐述了在Matlab中不同数据类型如浮点型、整型、字符型和逻辑型进行运算和连接时的结果类型。混合连接遵循向下转换原则,逻辑型连接特殊处理。举例展示了各种类型的数组连接和混合运算情况,包括整型数据内部连接和多类型混合连接的规则。

被折叠的 条评论
为什么被折叠?



