我有这两个载体:
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图像中的某些像素获得的。
答案 0 :(得分:16)
假设它们都是开头的整数矩阵,f_uv'
可能不是。
尝试:
alphaf_uv = double(alpha) * double(f_uv')
并告诉我们它是否仍然存在。
根据您的需要,您可能需要在之后将alphaf_uv
恢复为整数类型。
答案 1 :(得分:5)
这里的一个重要线索是:
alpha由我定义,f_uv是从png图像中的某些像素获得的。
这意味着 f_uv 数据以uint8的形式出现。 WHOS命令将验证。在命令行中定义它时,默认情况下向量将为Double。这就是为什么你看到“相同”矩阵之间行为的差异。
答案 2 :(得分:0)
也许f_uv是一个由.toString()方法返回的“控制台值”的对象。在这种情况下,您可能需要将f_uv设置为(int)。