MATLAB:char(x)yield无法从逻辑转换为char

时间:2017-09-07 19:32:47

标签: matlab type-conversion

我的研究需要一些代码,开发人员没有时间对我进行故障排除,所以我希望我能在这里得到一些帮助:

我认为这是一个MATLAB版本问题(可能),因为它看起来非常简单。这是造成悲伤的代码:

y = char(x);

输出结果为:

  

使用char

时出错      

无法从逻辑转换为char。

是的。如果我做disp(x)我得到: 0

有人可以告诉我这里是否有版本/语法/问题?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您无法真正信任函数disp。它会显示01的逻辑值。例如:

>> disp(false)
   0

您应该使用class函数测试x的数据类型,我相信您会看到它返回logical

>> x = false;
>> class(x)

ans =

logical

如果您想强制它进行转换,您可以将logical转换为double,如下所示:

y = char(double(x));

但是,您只会得到一个null或开头的标题字符(01 ASCII codes)。