【发布时间】:2017-12-06 09:33:45
【问题描述】:
我有一个 int16 值的向量,它在 Matlab 中表示为一个字符向量。 (原因在最后)
现在我只想将数组中的每两个 char 值转换为单个 int16 值。 在读取二进制文件时,这可以通过 fread() 的 precision 参数来完成——对于已经存储在向量中的数据是否有模拟函数?
我目前的解决方法:
% workaround using fread() to convert data type char -> int16
bytes = length(binary);
f = fopen('tmp', 'w+');
fwrite(f, binary);
fseek(f, 0, 'bof');
binary = fread(f, bytes/2, '*int16');
数据被读取为字符向量的原因:我读取了一个文件,其中包含封装在一些 ASCII 字符串之间的二进制文件。为了找到二进制数据,必须解释字符串,为此我使用正则表达式。然后我将纯二进制部分(连续的 int16 值)作为 (char) 字符串。
【问题讨论】:
标签: arrays string matlab type-conversion