Matlab误读ascii文本文件
Matlab misreading ascii text file
这是在使用 Matlab 分析一些文本文件时出现的问题,它搞砸了一些文本。我正在使用 R2017a (9.2.0.538062) 64 位 (maci64)。请注意重音字符。
其他文本编辑器("War and Peace.txt")(Textmate、Emacs、Textedit 和 GNU Octave)以及其他程序(Python、Ruby、数学)。
那是在 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是女皇玛丽亚·费多罗夫娜 (Márya Fëdorovna) 的宠儿和伴娘。
而在 Matlab 中
那是在 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是女皇 Má¡
我的问题
是否有可以准确读取 Ascii 文本的 Matlab(首选项?)设置? Matlab 似乎混淆了有效的 Ascii 字符(主要在 200-256 范围内)。
在尝试从文本文件中读取字符串时,我实际上遇到了与您相同的问题。我的问题是我以 ANSI
编码格式保存了 .txt
文件。经过多次尝试,我想出了一个解决方案。首先,您必须以 UTF-8
编码格式保存文件。像这样:
然后在您的 MATLAB 代码中,您应该在 fopen
command 中指定 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.
这是在使用 Matlab 分析一些文本文件时出现的问题,它搞砸了一些文本。我正在使用 R2017a (9.2.0.538062) 64 位 (maci64)。请注意重音字符。
其他文本编辑器("War and Peace.txt")(Textmate、Emacs、Textedit 和 GNU Octave)以及其他程序(Python、Ruby、数学)。
那是在 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是女皇玛丽亚·费多罗夫娜 (Márya Fëdorovna) 的宠儿和伴娘。
而在 Matlab 中
那是在 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是女皇 Má¡
我的问题
是否有可以准确读取 Ascii 文本的 Matlab(首选项?)设置? Matlab 似乎混淆了有效的 Ascii 字符(主要在 200-256 范围内)。
在尝试从文本文件中读取字符串时,我实际上遇到了与您相同的问题。我的问题是我以 ANSI
编码格式保存了 .txt
文件。经过多次尝试,我想出了一个解决方案。首先,您必须以 UTF-8
编码格式保存文件。像这样:
然后在您的 MATLAB 代码中,您应该在 fopen
command 中指定 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.