【问题标题】:Why importdata is not working here?为什么 importdata 在这里不起作用?
【发布时间】:2015-11-29 08:53:01
【问题描述】:

我有两个文本内容相同但大小不同的数据文本文件。以下快照对它们进行了比较(使用 Beyond Compare)。

文件的十六进制内容似乎不同。 MATLAB 函数importdata 可以很好地读取左侧的文件,但在右侧的文件(较大的文件)中出现以下错误:

无法加载文件。对于更复杂的格式,请使用 TEXTSCAN 或 FREAD。

这两个文件到底有什么区别?

如何使importdata 与右边的文件一起工作?

【问题讨论】:

  • 似乎一个文本文件是 ascii 编码(即每个字符 8 位),而第二个是 unicode(每个字符 16 位)。尝试将大文件转换为简单的 ascii 并重新读取。
  • 如果我手动转换它就可以了。但是我需要如何修改我的代码,而不是输入文件。
  • 尝试使用例如this utility转换为ascii。

标签: matlab character-encoding beyondcompare


【解决方案1】:

问题和解决方法在cmets中已经提到了:

似乎一个文本文件是 ascii 编码(即每个字符 8 位),而第二个是 unicode(每个字符 16 位)。尝试将大文件转换为简单的 ascii 并重新读取它

您可能已经在 BeyondCompare 中看到了不同之处:在左侧,您有一个 ANSI 文件,在右侧,您有一个带有 BOM 的 unicode(十六进制代码看起来像 UTF-16LE。我不确定,哪个用于获取屏幕截图的 BeyondCompare 版本。我的 BeyondCompare 不会显示“Unicode”而是“UTF16-LE”...)。

【讨论】:

    猜你喜欢
    • 2013-05-16
    • 2019-02-10
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多