【问题标题】:Finding the format of arbitrary delimited text file in MATLAB在MATLAB中查找任意分隔文本文件的格式
【发布时间】:2014-04-25 14:15:13
【问题描述】:

我在记事本++中有一个类似这样的文件

我可以很容易地看到空格(橙色圆点)和制表符(橙色箭头)。我也可以在 MATLAB 中右键单击它并以多种方式导入它。问题首先是分隔符不一致。似乎是 TAB 然后是一些空格以确保总字段等于 6 个字符...

我理解读取文件的唯一方法是如果您已经知道它是如何分隔的。但在这种情况下,我想解析每一行,以便 MATLAB 有一些“标记”,例如:

Line1: Text Space Text Space Text Tab Space Space Text NEWLINE

(Notepad++ 似乎知道得很好,所以 MATLAB 肯定也可以获取此信息吗?)。

这可能吗?那么最好使用此信息将导入的数据保存到格式完全相同的文件中。

数据如下。 由于某种原因,将其复制到 notepad++ 中不会保留其分隔符,您需要自己添加选项卡,使其看起来像屏幕截图中的文件。

Average Counts :      56.2
Time           :       120

谢谢

【问题讨论】:

  • 到目前为止,您使用了哪些函数将文件导入 MATLAB?
  • 只需右键单击并导入数据。我得到的最接近的是使用分隔符作为制表符,空格。然后我得到每个字符的数组。但我无法区分制表符和空格之间的区别。我想我所追求的是'Average''space''Counts'space'':''\tab'.. etc。我希望我的要求是有道理的。

标签: matlab file text format


【解决方案1】:

如果您使用textscan,默认行为应该可以满足您的需求:

在每行数据中,默认的字段分隔符是空格。空格可以是空格 (' ')、退格 ('\b') 或制表符 ('\t') 字符的任意组合。如果不指定分隔符,textscan 会将重复的空白字符解释为单个分隔符。

输出是一个元胞数组,其中每一列都保存为一个元胞。所以C{1} 将包含字符串,C{2} 包含冒号,C{2} 包含值。

【讨论】:

  • 这是我所得到的。所有textscan 示例都使用已知的格式规范。我想逐行生成 formatSpec。谢谢
  • 啊,所以你想用相同的分隔符写入文件吗?抱歉,我误会了。请问您为什么要那样做?你想在哪里查看生成的文件?
  • 是的,我想逐行了解所有空格和制表符的位置。我正在使用一些旧的科学仪器,并且正在努力找出它们如何输出文件的韵律或原因。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多