在Matlab中表示布尔值的常规类型是什么?

时间:2013-10-02 16:49:14

标签: matlab file-io types

我正在从文件中读取二进制数据,所讨论的特定值是uchar(无符号1字节值),概念上是布尔值。如何撰写fread声明?

即。我应该为???添加以下内容:

is_valid=fread(fid, 1, 'uint8=>???','a');

我认为我可以使用'*uint8'作为转化字符串,但我希望结果类型与其他用户期望的最相似。

2 个答案:

答案 0 :(得分:2)

MATLAB中的布尔值由logical类型表示。但是,fread不支持读取逻辑,因此请将其读作uint8并稍后转换为logical。例如:

is_valid = logical(fread(fid, 1, 'uint8', 'a'));

答案 1 :(得分:0)

这适用于2012b:

A = fread(fid, 1, 'uint8=>logical');