假设您有一个包含许多列的简单文本文件。有些列已经是十进制值。有些是十六进制的。那些专栏是已知的。
test.txt>>
1.4 1.9 21 0030 0D12
0.3 3.3 91 FFFF 1111
我想将前三列读作十进制,并将最后两列读为十六进制。
这可以轻松完成吗?
谢谢!
答案 0 :(得分:1)
可以通过textread
轻松完成。举个例子,你可以这样做:
[col1, col2, col3, col4, col5] = textread('myfile.txt', '%f %f %f %s %s');
这将正常读取十进制值,并将十六进制值视为字符串。
如果您还希望将字符串转换为十进制值,请将hex2dec
与cellfun
一起使用:
[col4, col5] = cellfun(@hex2dec, col4, col5);
希望这有帮助。
答案 1 :(得分:0)
您可以使用fscanf。十六进制值应该都是正数吗?如果是这样,您可以像这样扫描:
fscanf(file_id,'%f %f %d %x %x')