Matlab掃盲小短篇19:多類型數(shù)據(jù)混合連接和運(yùn)算的結(jié)果類型
眾所周知,Matlab有很多數(shù)據(jù)類型,包括浮點(diǎn)型、整型、字符型、邏輯型等;現(xiàn)在的問題是,Matlab多類型進(jìn)行運(yùn)算和連接后,結(jié)果是什么類型呢?下面具體說(shuō)明。
1.混合連接的結(jié)果類型列表
這里所講的連接,是指矩陣連接,是矩陣或者數(shù)組添加元素的常用方式,總體上,除邏輯型外,連接后的類型遵循向下轉(zhuǎn)換的原則;邏輯型除了與自身連接是邏輯型,與其他連接轉(zhuǎn)換成其他型,混合連接類型列表如下:

2.雙精度、單精度浮點(diǎn)型與整型、字符型、邏輯型的數(shù)組連接
程序示例
>> [100 single(100)]
>> [100 single(100) int8(100)]
>> [100 single(100) int8(100) 'd']
>> [100 true]? %雙精度與邏輯型連接
3.整型數(shù)據(jù)內(nèi)部連接
程序示例
>> [int8(100) int16(100)]
>> [int16(100) int8(100)]? %遵循最左側(cè)整型類型的原則
>> [int8(-100) uint8(100)]?
>> [uint8(100) int8(-100)]? %右邊由有符號(hào)變?yōu)闊o(wú)符號(hào),僅取到最小值0
4.多類型混合連接
程序示例
>> [true pi int32(10) single(1.23) uint8(345)]? %pi為雙精度,int32為整型,混合連接遵循最左側(cè)整型數(shù)據(jù)類型原則,后面超出int32的數(shù)據(jù)會(huì)相應(yīng)變化
>> [true pi single(1.23) uint8(345)]? %結(jié)果取uint8
5.多個(gè)類型數(shù)據(jù)混合運(yùn)算后的結(jié)果數(shù)據(jù)類型
總體上,除邏輯型和字符型,混合運(yùn)算類型遵循向下轉(zhuǎn)換的原則,邏輯型除了與自身運(yùn)算是邏輯型,與其他運(yùn)算轉(zhuǎn)換成其他型,混合運(yùn)算類型列表如下:

6.單精度、雙精度浮點(diǎn)型和整型數(shù)據(jù)混合運(yùn)算
>> 10+single(10)? %雙+單=單
>> 10+int8(10)? %雙+整=整
>> %[10 10]+int8(10)? %雙精度數(shù)組無(wú)法與整型相加,報(bào)錯(cuò)
7.雙精度浮點(diǎn)型和字符型、邏輯型混合運(yùn)算
>> 10+'d'? %雙精度+字符型=雙精度
>> 'd'+'d'? %字符型+字符型,先轉(zhuǎn)換為雙精度再運(yùn)算
>> [10,'d']? %復(fù)習(xí)上節(jié),連接:[雙精度 字符型] =字符型
>> 10+true? %雙精度+logical=雙精度
8.整型數(shù)據(jù)內(nèi)部運(yùn)算
>> int8(10)+int16(10) ?%不同類型整型無(wú)法相加運(yùn)算
>> [int8(10),int16(10)].*[int8(10),int8(10)] ?%整型數(shù)組乘法
>> % [int8(10),int16(10)]*[int8(10);int8(10)]? %矩陣乘法,前面列數(shù)等于后面行數(shù),報(bào)錯(cuò):矩陣乘法不完全支持整數(shù)類,僅支持參數(shù)之一為標(biāo)量的情況
相關(guān)推薦







End