Matlab自学笔记十九:多类型数据混合连接和运算的结果类型

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

目录

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

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

3.整型数据内部连接

4.多类型混合连接

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

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

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

8.整型数据内部运算


众所周知,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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

freexyn

码字不易,谢谢鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值