0

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

测试.txt >>

1.4 1.9 21 0030 0D12
0.3 3.3 91 FFFF 1111

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

这可以轻松完成吗?

谢谢!

4

2 回答 2

1

它可以很容易地完成textread。对于您的示例,只需执行以下操作:

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

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

如果您还希望将字符串转换为十进制值,请使用hex2decwith cellfun

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

希望这可以帮助。

于 2012-08-25T00:00:36.067 回答
0

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

fscanf(file_id,'%f %f %d %x %x')
于 2012-08-25T00:02:44.443 回答