2016-11-17 5 views
1

Я хочу, чтобы прочитать все символы из файла, включая все пробелы, что я пытаюсь этоКак читать пробелы из файла в Matlab?

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

Но результат не является правильным, потому что его только подсчет всех символов, кроме пространства.

Так как я могу это сделать, любая помощь будет оценена?

Я хочу прочитать файл с пробелами.

Image is attached here

+0

За исключением места? вы считаете их всех, в том числе пространства, rigth? –

+0

документация говорит, что если вы используете «% c», тогда он будет включать все пробелы, но когда я вставляю свой файл txt в MS word, тогда он говорит, что другой результат означает, что он не подсчитывает пробелы. –

+0

. Я доверяю MATLAB больше, чем MS word, to быть честным .... Можете ли вы опубликовать [mcve] –

ответ

0

Так что помощь на 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', '') 
Смежные вопросы