MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   Matlab:二进制数用作布尔值时表现不符合预期吗? (https://www.labfans.com/bbs/showthread.php?t=26212)

poster 2019-12-14 20:13

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时我如何得到它输出“是”,否则我知道如何输出?

谢谢!



[B]回答:[/B]

[URL="http://www.mathworks.com/help/techdoc/ref/dec2bin.html"]dec2bin()[/URL]将数字转换为[I]字符串[/I]表示形式,因此x(1)获得一个[I]char[/I] ,而不是一个[I]int[/I] 。因此,它将是与'0'或'1' (分别为48或49)相对应的ASCII值。 [URL="http://www.mathworks.com/help/techdoc/ref/logical.html"]logical()[/URL]仅测试其参数是否为非零,在两种情况下均是如此。

解决方案是简单地使用[URL="http://www.mathworks.co.uk/help/techdoc/ref/bitget.html"]bitget()[/URL]代替。



[url=https://stackoverflow.com/questions/4776965]更多&回答...[/url]


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

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