当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在MATLAB中将两个2向量相乘时,数字类型会出错》经验,为你挑选了2个好方法。

我有这两个向量:

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图像中的一些像素获得.



1> paxdiablo..:

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

尝试:

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

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

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



2> MatlabDoug..:

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

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

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

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有