【发布时间】:2018-02-27 08:07:33
【问题描述】:
我正在尝试根据特定格式读取包含数据的文本文件。我正在使用和textscan 以及一个包含格式的字符串,以便在一个代码行中读取整个数据集。我已经找到了如何使用fgetl 阅读整行代码,但我想使用尽可能少的代码行。所以我想避免自己的for循环。 textscan 似乎很适合。
作为示例,我将包含我的代码的一部分,它读取代表修改后的数据集的五个字符串、其遗产(旧数据集的名称)、修改的日期和时间,最后是任何注释。
fileID = fopen(filePath,'r+');
readContentFormat = '%s = %s | %s %s | %s';
content = textscan(fileID, readContentFormat, 'CollectOutput,1);
如果评论中没有任何分隔符(如空格),这暂时有效。但是,我希望能够在行尾写 cmets。
有没有办法使用 textscan 并让它知道我想将一行的其余部分读取为一个字符串/字符数组(包括任何空格)?我希望将一些东西放入我的变量readContentFormat,而不是最后一个%s。还是有另一种方法不涉及遍历文件中的每一行?
此外,即使我的数据非常有限,我也很想知道不同方法在计算效率或稳定性方面的优缺点。如果您知道您认为值得分享的内容,请分享。
【问题讨论】:
标签: matlab text-files line fopen textscan