Matlab变量无法平方计算的解决方法

最近做课题,用Matlab遇到一个问题。见下方代码。

K>> 255^2

ans =

       65025

K>> (Otsu_front_avg-Otsu_avg)

ans =

  255

K>> (Otsu_front_avg-Otsu_avg)^2

ans =

  255

可以发现,正常情况下使用255平方可以得出结果,但是当上述表达式的值为255的时候,平方后依然为255。百思不得其解。

后来找到原因是,表达式变量的值为uint8,而int8的最大值就是255,所以,即使对它再平方,结果还是255。

解决方法是,将变量转变为uint32,即可解决。使用函数:

K>> int32(Otsu_front_avg-Otsu_avg)^2

ans =

       65025

以上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容