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

以上。

    原文作者:haoyang0625
    原文地址: https://www.jianshu.com/p/aea72265b101
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞