7

我有这两个向量:

alpha =
     1    1    1    1    1    1    1    1    1

f_uv =
   193  193  194  192  193  193  190  189  191

当我这样做时:

alphaf_uv = alpha * f_uv'

我收到错误消息:

"??? Error using ==> mtimes
Integers can only be combined with integers of the same class, or scalar doubles." 

有趣的是,如果我在控制台中定义相同的向量并在那里尝试乘法,则不会出现此错误。

alpha由我定义,f_uv是从 PNG 图像中的某些像素中获得的。

4

3 回答 3

16

假设它们都是整数矩阵,f_uv'可能不是。

尝试:

alphaf_uv = double(alpha) * double(f_uv')

并让我们知道它是否仍然发生。

之后您可能需要alphaf_uv转回整数类型,具体取决于您的需要。

于 2008-11-22T11:05:32.723 回答
5

这里的大线索是:

alpha is defined by me and f_uv is obtained from some pixels in a png image.

This heavily implies that the f_uv data is coming in as uint8. The WHOS command will verify. When you define this at the command line, the vectors will be Double by default. That is why you are seeing the difference in behavior between "identical" matrices.

于 2008-12-15T20:51:05.217 回答
0

也许 f_uv 是一个由 .toString() 方法返回的具有“控制台值”的对象。在这种情况下,您可能需要将 f_uv 设置为 (int)。

于 2008-11-22T11:09:45.647 回答