Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 Matlab:二进制数用作布尔值时表现不符合预期吗?

我正在尝试在Matlab中将二进制数字的组件用作布尔值。不幸的是,它们的行为不像我期望的那样。以下面的代码为例:

for x = dec2bin(0:1)' x(1) % the leading bit of x if logical(x(1)) disp('yes') else disp('no') end end 它输出:

ans = 0 yes ans = 1 yes 有人知道这是为什么吗,当x(1)为1时我如何得到它输出“是”,否则我知道如何输出?

谢谢!



回答:

dec2bin()将数字转换为字符串表示形式,因此x(1)获得一个char ,而不是一个int 。因此,它将是与'0'或'1' (分别为48或49)相对应的ASCII值。 logical()仅测试其参数是否为非零,在两种情况下均是如此。

解决方案是简单地使用bitget()代替。



更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:45


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.