逻辑变量转换成整数

762(30天)
这就跟你问声好!我认为我的问题很简单。我在我的代码有一些布尔表达式,结果永远是1或0(真或假)。下面是一些例子:
=数据+(1 *(~垫(i)垫(j)垫(k))) | |(~垫(i) & & ~垫(j));
=数据+(~垫(i));
我已经将这些逻辑值1和0 int值。我试着用abs(),但它不工作。
顺便说一句,我在R2015b。
我欣赏的帮助。
谢谢!

接受的答案

清洁能源
清洁能源 2016年3月8日
你通常可以在matlab中互换使用逻辑值和数值(对于大多数操作),不需要转换。但是如果你这样做,你可以使用int8扔如
一个=逻辑(0);%是一个逻辑
b =一个;% b是一个逻辑
c = int8(一个);% c是一个int8
这同样适用于其他数据类型(int16 int32,双,……)看到 数据类型 获取详细信息。
2的评论
Stephen23
Stephen23 2021年12月21日
编辑:Stephen23 2021年12月21日
“我uint8改为双工作正常。可能的错误?”
不客气。MATLAB假定UINT8图像数据范围从0 - 255(即整个8位范围),而双图像数据范围从0 - 1(即归一化)。这显然是在MATLAB解释文档:

登录置评。