Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab fscanf字符串读取奇怪行为_Matlab_File_Scanf_Fopen - Fatal编程技术网

Matlab fscanf字符串读取奇怪行为

Matlab fscanf字符串读取奇怪行为,matlab,file,scanf,fopen,Matlab,File,Scanf,Fopen,我正在尝试使用fscanf在matlab中读取一个文件。该文件是微控制器中某个内存区域的转储。我从IDE导出它,编码为“ISO-8859-1” 当我在matlab中打开文件时,这里有一行: 25 08 00 00 7E 05 00 00 08 08 00 00 85 05 00 00 0D 06 00 00 76 06 00 00 04 0C 00 00 FB 07 00 00 3A 06 00 00 0C 06 00 00 01 06 00 00 0C 06 00 00 C3 05 00 00

我正在尝试使用fscanf在matlab中读取一个文件。该文件是微控制器中某个内存区域的转储。我从IDE导出它,编码为“ISO-8859-1”

当我在matlab中打开文件时,这里有一行:

25 08 00 00 7E 05 00 00 08 08 00 00 85 05 00 00 0D 06 00 00 76 06 00 00 04 0C 00 00 FB 07 00 00
3A 06 00 00 0C 06 00 00 01 06 00 00 0C 06 00 00 C3 05 00 00 EF 05 00 00 05 06 00 00 FF 05 00 00
EF 05 00 00 FB 05 00 00 89 08 00 00 74 06 00 00 0D 06 00 00 FC 05 00 00 10 06 00 00 C3 05 00 00
C5 05 00 00 F2 05 00 00 81 05 00 00 1C 06 00 00 85 05 00 00 F0 05 00 00 C2 05 00 00 5F 05 00 00
(完整文件)

这是正确的:我在IDE中看到了相同的数字。 我所做的是:

fileID = fopen('testdataadc.txt','r','n','ISO-8859-1');
% Read all characters excluding white spaces.
vecDump = fscanf(fileID, '%s' ,[25 Inf]);
fclose(fileID);
其中“n”表示本机endiannes:您的系统字节顺序(默认)。 现在是vecDump中的第一列(它是一个25x64字符变量):

格式是我期望的,但值是错误的。 例如:

         25 08 00 00 becomes 25 06 00 00
         7E 05 00 00 becomes F5 08 00 00

我做错了什么?

fscanf的输出是一个25x64字符矩阵。文件中的数据按列填充此矩阵。如果沿着第一列查看,您将看到:“250800007E05”等。由于文件每行有64个非空格字符,您应该将文件读入64xN矩阵,然后将其转置:

vecDump=fscanf(文件ID,'%s',[64,Inf])。'

现在
vecDump
将看起来像您的文件,但没有空格。

@CrisLuengo提出了一个很好的观点,因为如果第一个数字正确,则表明数据可以被转置。不过,如果你把文件贴到某个地方,我们就可以试试……谢谢CrisLuengo的提示。我查过了,但对我来说这不是问题所在@贾斯汀:我编辑了这篇文章,希望链接对你有用。非常感谢。不过,对我来说这很奇怪。但我想这是因为我对文件I的经验很少/O@a_bet:您需要认识到,读取的不是一系列字符串,而是一系列字符。输出是一个字符数组。
         25 08 00 00 becomes 25 06 00 00
         7E 05 00 00 becomes F5 08 00 00