在MATLAB中将两个2向量相乘时,数字类型会出错

Red*_*mer 7 math matlab vector

我有这两个向量:

alpha =
     1    1    1    1    1    1    1    1    1

f_uv =
   193  193  194  192  193  193  190  189  191
Run Code Online (Sandbox Code Playgroud)

当我这样做时:

alphaf_uv = alpha * f_uv'
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

"??? Error using ==> mtimes
Integers can only be combined with integers of the same class, or scalar doubles." 
Run Code Online (Sandbox Code Playgroud)

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

alpha由我定义并f_uv从PNG图像中的一些像素获得.

pax*_*blo 16

假设它们都是开头的整数矩阵,f_uv'可能不是.

尝试:

alphaf_uv = double(alpha) * double(f_uv')
Run Code Online (Sandbox Code Playgroud)

如果它仍然存在,请告诉我们.

根据您的需要,您可能需要在alphaf_uv之后返回整数类型.


Mat*_*oug 5

这里的重要线索是这样的:

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

这很大程度上意味着f_uv数据以uint8的形式出现.WHOS命令将验证.在命令行中定义它时,默认情况下矢量将为Double.这就是为什么你看到"相同"矩阵之间的行为差​​异.