将数据转化为UInt16时出现报错
技术分享
发布于 2024-09-11 20:36:07
查看 3过去629天
一、问题现象
将数据转化为UInt16时出现报措,报错信息如下:
ERROR:InexactError:UInt16(xxxxx)
代码如下:
s=size(a)
b=ones(UInt16,s[1],s[2])
b=UInt16.(a)
二、解决方法 / 步骤
由于上述代码中的矩阵a非整型,根据julia语言的特性,无法对非整型数据进行整型处理,因此需要将矩阵a先转为整型,再转为Ulnt16数据类型。
修改后的代码如下:
s=size(a)
b=ones(UInt16,s[1],s[2])
a=round.(a) #将柜阵a转为整型值
b=UInt16.(a) #将矩阵a转为UInt16数据类型,并赋给矩阵b
补充:round函数的用法
语法:
round(z::Complex[,RoundingModeReal,[RoundingModelmaginary]];digits=,base=10)
round(z::Complex[,RoundingModeReal.[RoundingModelmaginary]]:sigdigits=,base=10)
round([T,]x,[r::RoundingMode])
round(x,[r::RoundingMode];digits::Integer=0,base=10)
round(x,[r::RoundingMode];sigdigits::Integer,base=10)
说明:
四舍五入为最近的小数或整数
示例:复数取整
对复数的实部和虚部分别进行四舍五入。

round函数的有关信息可以参阅帮助文档:

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境