如何在MATLAB中读取包含十进制和十六进制/二进制值的文件

时间:2012-08-24 23:49:02

标签: file matlab binary

假设您有一个包含许多列的简单文本文件。有些列已经是十进制值。有些是十六进制的。那些专栏是已知的。

test.txt>>

1.4 1.9 21 0030 0D12
0.3 3.3 91 FFFF 1111

我想将前三列读作十进制,并将最后两列读为十六进制。

这可以轻松完成吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

可以通过textread轻松完成。举个例子,你可以这样做:

[col1, col2, col3, col4, col5] = textread('myfile.txt', '%f %f %f %s %s');

这将正常读取十进制值,并将十六进制值视为字符串。

如果您还希望将字符串转换为十进制值,请将hex2deccellfun一起使用:

[col4, col5] = cellfun(@hex2dec, col4, col5);

希望这有帮助。

答案 1 :(得分:0)

您可以使用fscanf。十六进制值应该都是正数吗?如果是这样,您可以像这样扫描:

fscanf(file_id,'%f %f %d %x %x')