【问题标题】:Use importdata without renaming the file extension to .txt使用 importdata 而不将文件扩展名重命名为 .txt
【发布时间】:2015-05-21 02:20:49
【问题描述】:

我喜欢命令 importdata,但如果没有我在导入前将文件扩展名重命名为 .txt(或删除文件扩展名),它对我的​​文件不起作用。

此问题仅在我运行 Matlab 2014b 时出现,其他版本似乎按预期运行。

我可以在任何标准文本编辑器中打开文件,因此文件格式对于 Matlab 应该是可以理解的(我认为)。例如,扩展名可能是 .res.ida 或其他“自定义”扩展名...

我能否让 Matlab 了解如何将文件视为 .txt 而无需重命名?或任何其他解决方法(如 importdata 一样短几行)??

示例文件:

文字文字文字文字文字
正文 11 12 13
文字 21 22 23

任何帮助表示赞赏!

【问题讨论】:

  • importdata 仅适用于 *.txt 文件是不正确的。如果它不是标准文件格式,它会将其视为分隔的 ASCII 文件。可能发生的情况是内置的辅助函数无法检测文件的结构。数据的格式是什么?空格分隔、制表符分隔、其他分隔符?有标题吗?有关通用选项,请参阅 MATLAB 的 documentation for importing and exporting data,特别是“标准文件格式”和“低级文件 I/O”部分。
  • 既有文本(几行),又有一个矩阵。用空格分隔。使用 importdata 很方便,因为它会自动分离数据和文本数据。
  • 如果没有重现您问题的有效示例,就很难帮助您解决问题。请参阅MVCE 获取指导。
  • 好的,等我可以访问 Matlab 后我会这样做。
  • 编辑您的问题,而不是将其添加到 cmets。

标签: matlab import


【解决方案1】:

该文件可以具有您想要的任何扩展名。只需指定分隔符,在您的情况下为空格

my_delim = ' ';
M = importdata(any_file_type_with_text_in_it, my_delim):

【讨论】:

  • 这不起作用,我仍然收到一个空数组。所以后来我开始怀疑并在 Windows 上尝试了 Matlab (2011) 并且它可以工作,Gnome (2012b) 中的旧版本也是如此。这是我当前使用的版本(2014b)由于某种原因无法正常工作(使用 Gnome)......这是一个问题,因为我使用的是 2014 年发布的新功能。您使用哪个版本进行了测试?
  • 我在 windows 和 mac 上使用了 2012a(我觉得它已经够老了)。也许这是一个Linux发行版的问题?我不确定您的桌面类型(gnome、kde 等)是否会有所作为,因为它们都具有相同的 java 发行版。可以试试2014的windows机器吗?
  • 不,我没有在 Windows 中安装那个版本。
  • 您查看过文件中的行尾吗?也许crlf 的组合是importdata 中的解析器不喜欢的。只是一个猜测,我不确定它会是什么。祝你好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
  • 2012-11-13
  • 2012-01-02
  • 2017-12-19
  • 2018-01-11
  • 2013-05-17
相关资源
最近更新 更多