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



我正在从文件中读取二进制数据,有问题的特定值是uchar(无符号 1 字节值),概念上是布尔值。 如何编写fread语句?

即我应该在以下???中输入什么:

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

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

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

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

这适用于 2012b:

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

最新更新