Matlab中typecast函数由int8转换为int32
typecast函數
在不更改基礎數據的情況下轉換數據類型
語法
Y = typecast(X, type)
說明
Y = typecast(X, type)?將?X?中的數值轉換為?type?指定的數據類型。輸入?X?必須是完整的非復數數值標量或向量。type?輸入是設置為以下項之一的字符串:'uint8'、'int8'、'uint16'、'int16'、'uint32'、'int32'、'uint64'、'int64'、'single'?或?'double'。
typecast?與 MATLAB?cast?函數的區別在于,它不會更改輸入數據。typecast?在輸出?Y?中返回的字節數始終與輸入?X?中的字節數相同。例如,使用?typecast?將 16 位整數 1000 轉換為?uint8?會以兩個 8 位段(3 和 232)的形式返回完整的 16 位,從而保持其原始值 (3*256 + 232 = 1000)。而?cast?函數將此輸入值截斷為 255。
根據所用系統,typecast?的輸出格式可能會有所不同。某些計算機系統從數據的最高有效字節開始存儲數據(稱為?big-endian?排序),而其他計算機系統從最低有效字節開始存儲數據(稱為?little-endian?排序)。
注意
如果?X?包含的值少于生成輸出值所需的值,MATLAB 會發出錯誤。
int8轉換為int32類型
此示例嘗試根據三個 8 位值的向量生成一個 32 位值。由于輸入中的字節數不足,因此 MATLAB 會發出錯誤:
format hex typecast(uint8([120 86 52]), 'uint32')Error using typecast Too few input values to make output type.使用四個 8 位值的向量重復此示例,該示例將返回預期結果:
typecast(uint8([120 86 52 18]), 'uint32') ans =12345678如上圖所示可以看出這個函數等于高位*2^24+中間*2^16+中間*2*8+低位2^0實現了int8到int32的轉換
其他的詳細用法:https://ww2.mathworks.cn/help/matlab/ref/typecast.html
可以點擊上面鏈接進官網看
?
?
總結
以上是生活随笔為你收集整理的Matlab中typecast函数由int8转换为int32的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水声定位中的CBF波束形成原理
- 下一篇: QT窗体控件自适应大小