gpt4 book ai didi

matlab - 为什么我在 MATLAB 中的数组在值 255 处饱和?

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:48 25 4
gpt4 key购买 nike

这是我的代码:

arr = zeros(fx-10,1);
frm = frams(x).cdata;
for k=1:fx-10
for i=1:10
for j=1:fy
arr(k) = arr(k)+ abs(frm(k+i-1,j)-model(i,j))
end
end
end

为什么数组最多只能接收 255 个值?

我尝试定义:

 arr = zeros(fx-10,1,'int64');

代码失败了:

??? Undefined function or method 'plus' for input arguments of type 'int64'.

最佳答案

虽然你的数组 arr是 double 类型,我相信您从 frm 获得的一个或多个值或 model类型为 UINT8 ,其最大值为 255。完成算术运算后将这些值添加到 arr。 ,我相信计算是使用整数运算完成的,结果被转换为 double 以放置在 arr 中.当您不断将 UINT8 值相加时,该值最终会达到最大值 255。

要解决这个问题,您可以使用函数 DOUBLEfrm 转换值或 model在进行算术运算之前键入 double。这样的事情应该有效:

arr(k) = arr(k) + abs(double(frm(k+i-1,j))-double(model(i,j)));

关于matlab - 为什么我在 MATLAB 中的数组在值 255 处饱和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3458889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com