【问题标题】:Matlab misreading ascii text fileMatlab误读ascii文本文件
【发布时间】:2017-09-07 13:14:20
【问题描述】:

这是使用 Matlab 分析某些文本文件时的问题,它会弄乱某些文本。我正在使用 R2017a (9.2.0.538062) 64 位 (maci64)。请注意重音字符。

其他文本编辑器(Textmate、Emacs、Textedit 和 GNU Octave)以及其他程序(Python、Ruby、Mathematica)正在正确读取文件(“War and Peace.txt”)。

那是 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是女皇玛丽亚·费多罗芙娜的宠儿和宠儿。

而在 Matlab 中

那是在 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是 Márya Fâ«dorovna 皇后的伴娘和宠儿。

我的问题

是否有可以准确读取 Ascii 文本的 Matlab(首选项?)设置? Matlab 似乎在乱码有效的 Ascii 字符(大部分在 200-256 范围内)。

【问题讨论】:

标签: matlab text analysis


【解决方案1】:

在尝试从文本文件中读取字符串时,我实际上遇到了与您相同的问题。我的问题是我以ANSI 编码格式保存了.txt 文件。经过多次尝试,我想出了一个解决方案。首先,您必须以UTF-8 编码格式保存文件。像这样:

然后在您的 MATLAB 代码中,您应该在 fopencommand 中指定 encondigIn

测试代码可以是这样的:

close all;clearvars;clc;

fileID = fopen('text.txt', 'r', 'n', 'UTF-8');
C = textscan(fileID, '%s');
fclose(fileID);

celldisp(C) 

这段代码的输出是:

C{1}{1} =

It


C{1}{2} =

was


C{1}{3} =

in


C{1}{4} =

July,


C{1}{5} =

1805,


C{1}{6} =

and


C{1}{7} =

the


C{1}{8} =

speaker


C{1}{9} =

was


C{1}{10} =

the


C{1}{11} =

well-known


C{1}{12} =

Anna


C{1}{13} =

Pávlovna


C{1}{14} =

Schérer,


C{1}{15} =

maid


C{1}{16} =

of


C{1}{17} =

honor


C{1}{18} =

and


C{1}{19} =

favorite


C{1}{20} =

of


C{1}{21} =

the


C{1}{22} =

Empress


C{1}{23} =

Márya


C{1}{24} =

Fëdorovna.

【讨论】:

  • 谢谢你一百万,奥萨马。您的解决方案完美运行。祝你学业顺利——我希望我年轻的时候学过工程学。最好的,戴夫
  • @user3161399 很高兴我能帮上忙。宾果游戏:)
猜你喜欢
  • 1970-01-01
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
  • 2013-06-30
  • 2012-05-09
相关资源
最近更新 更多