使用 scilab 从文件中读取十六进制
Read hexadecimal from file with scilab
我有一个如下所示的文件:
Time M1:Address 480008C0
0 79F9446F
0.000125 7AE7446B
0.00025 7BA8446F
...
它是由制表符分隔的2个数字,一个是十六进制数。我希望将这些读入 scilab 中的十进制数组。我尝试按如下方式打开和读取文件:
u=mopen('proper_log_with_fail.txt','r'); // open the file for reading
s = mscanf(u, '%s'); // Forget the first line
[time,val]=mfscanf(u,'%e\t%x'); // Get the second line
所以我无法读取任何值...?我什至无法阅读第一个字符串?我做错了什么超级明显的错误吗?
可能是打字错误,但对于第一行,您使用的是 mscanf
,应该是 mfscanf
,以便从文件中读取。更改此设置时,它表明您的第一行不匹配,请注意 %s
仅匹配一个单词,然后在下一个空格处停止。
要读取(并丢弃)第一行,请使用 mgetl
并告诉它读取 1 行。如果输入文件的其余部分数据格式相同,您可以使用 mfscanf
的 niter
参数来保持匹配直到文件末尾 (EOF)。
file_path = 'proper_log_with_fail.txt';
// open the file for reading
fd=mopen(file_path,'r');
// Read/display header line
number_of_lines_to_read = 1;
header = mgetl(fd, number_of_lines_to_read);
disp(header);
// Scan all lines up until EOF
niter = -1
s = mfscanf(niter, fd, '%e %x');
disp(s)
// Close the file after reading
mclose(fd)
我有一个如下所示的文件:
Time M1:Address 480008C0
0 79F9446F
0.000125 7AE7446B
0.00025 7BA8446F
...
它是由制表符分隔的2个数字,一个是十六进制数。我希望将这些读入 scilab 中的十进制数组。我尝试按如下方式打开和读取文件:
u=mopen('proper_log_with_fail.txt','r'); // open the file for reading
s = mscanf(u, '%s'); // Forget the first line
[time,val]=mfscanf(u,'%e\t%x'); // Get the second line
所以我无法读取任何值...?我什至无法阅读第一个字符串?我做错了什么超级明显的错误吗?
可能是打字错误,但对于第一行,您使用的是 mscanf
,应该是 mfscanf
,以便从文件中读取。更改此设置时,它表明您的第一行不匹配,请注意 %s
仅匹配一个单词,然后在下一个空格处停止。
要读取(并丢弃)第一行,请使用 mgetl
并告诉它读取 1 行。如果输入文件的其余部分数据格式相同,您可以使用 mfscanf
的 niter
参数来保持匹配直到文件末尾 (EOF)。
file_path = 'proper_log_with_fail.txt';
// open the file for reading
fd=mopen(file_path,'r');
// Read/display header line
number_of_lines_to_read = 1;
header = mgetl(fd, number_of_lines_to_read);
disp(header);
// Scan all lines up until EOF
niter = -1
s = mfscanf(niter, fd, '%e %x');
disp(s)
// Close the file after reading
mclose(fd)