所以,当然,我现在有点麻烦。我正在尝试读取一个按列顺序排列的文本文件。我想做的是将数字、字符和字符串列分别存储在数组中。
[Numbers] [Characters] [Strings]
现在,虽然我已经弄清楚如何将数字和字符列读入它们自己的数组,但我似乎无法对字符串列这样做。至少,不是fscanf
or sscanf
,这是我想要使用的命令。
您如何使用fscanf
or读取这样组织的文件sscanf
?(我知道 textscan,我想知道 fscanf 或 sscanf 是否可以)。
好的,让我在这里添加一些代码。因此,当我研究这个时,我尝试了以下方法:
fid = fopen('Data.txt', 'w+');
i = 1;
while ~feof(fid)
line = fgets(fid);
M(i) = sscanf(line, '%d, %c, %s', [3,inf];
i = i+1;
end
这会运行,但 M 最终仅作为由数据文件中第一列数字组成的行向量出现。它只是完全忽略了字符和字符串的存在。
现在,为了更好地理解 sscanf 函数,我尝试了以下
fid = fopen('Data.txt', 'w+');
i = 1;
while ~feof(fid)
line = fgets(fid);
M(i) = sscanf(line, '%d, %d, %d', [3,inf];
i = i+1;
end
对于仅由数字列组成的样本数据集。顺便说一句,这与以前完全相同。它只是读取数据的第一个数字列并退出。所以,我什至不知道如何正确使用 sscanf、feof 或 fgets,基本上。所以我也可以在这里使用一些帮助。
而且我知道使用 fscanf 尝试仅读取数字列是微不足道的,但我试图在这里理解 sscanf 和 fgets。