matlab中的polyfit具有不同类型的数据

时间:2013-08-01 09:39:21

标签: matlab input types

在阅读图像时,考虑用于polyfit的输入是不同的类型。一个是“uint8”而另一个是“double”(它们的大小相同,< 1x384>) 能否请你给我一个如何解决它的提示?

我的错误显示如下,而我没有在polyfit中使用TIMES:

使用*时出错 整数类不完全支持MTIMES。至少一个输入必须是标量。 要计算元素TIMES,请改用TIMES(。*)。

polyfit错误 p = R(Q'* y); %与p = V \ y相同;

如何将其转换为unit8? (在其他情况下,其结果不适合我的脚本)

1 个答案:

答案 0 :(得分:0)

要将类型double转换为uint8,您可以执行以下操作:

b = [1:10]; % <-- type double
a = uint8(b); % <-- convert to uint8

whos a 
  Name      Size                    Bytes  Class

  a         1x1                         1  uint8 array

Grand total is 1 element using 1 bytes

要做相反的事情:

a = uint8([1:10]); % <-- convert to uint8
b = double(a); % <-- type double

whos b
  Name      Size                    Bytes  Class

  b         1x10                       80  double array

Grand total is 10 elements using 80 bytes

类型uint8变量是无符号整数(&gt; = 0)。

某些操作无法使用它们,例如A\b

在尝试使用输入图像进行操作之前,请将它们转换为double,如下所示:

im_double = double(im_uint8);

其中im_uint8是原始图片。