众所周知,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)]%右边由有符号变为无符号,仅取到最小值
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)%双+整=整
>>%[1010]+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)]%矩阵乘法,前面列数等于后面行数,报错:矩阵乘法不完全支持整数类,仅支持参数之一为标量的情况
相关视频
Matlab入门:1.28混合连接的类型
Matlab入门:1.29混合运算的类型
End
免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:Matlab入门19:多个数据类型混合运算和连接,结果是什么类型呢?(matlab多个数据存入一个变量) https://www.bxbdf.com/a/70073.shtml