如何从 Matlab 中的文件中读取空格?

How to read Spaces from a file in Matlab?

我想从文件中读取所有字符,包括所有 spaces,我正在尝试的是

fileRead = textread('myFile.txt', '%c');
disp('Characters total')
disp(length(fileRead))

但结果不正确,因为它只计算除 space 之外的所有字符。

So how do i do that, any help would be appreciated?

我想用 spaces 读取文件。

Image is attached here

所以关于 textread(或更好的选择 textscan)的帮助在 %c 格式说明符如何处理空格方面不是很清楚。

如果您只使用一个 %c,它将一次读取 一个字符,但在这种情况下,空格仍将被视为一个分隔符,因为它位于两个单字符匹配项之间。

文档中关于 %c 匹配空格的内容是,如果您为 %c 说明符 (%<length>c) 指定预期长度,则空格将包含在匹配。

textread('z.txt', '%12c')
%   my name is z

如果您只想将整个文件作为字符数组读取,我会使用 fread'*char' 数据类型,这是一个用于访问文件内容的低级函数,如果你根本不需要解析它们。

fid = fopen('z.txt', 'r');
data = fread(fid, '*char').';

disp(numel(data))

如果你真的想使用textread,另一种选择是使用%s(字符串)格式说明符而不是字符说明符,并将'Whitespace'参数设置为'' 不将空格视为空格,因此是定界符。

textread('z.txt', '%s', 'whitespace', '')