2012-06-01 3 views
4

Я пытаюсь прочитать текстовый файл в MATLAB, который имеет следующий формат. Я ищу, чтобы прочитать всю строку в виде строки.Как читать строку из текстового файла в виде строки в matlab?

2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189 

Я пробовал пару вещей.

textscan(fid, '%s') считывает строку, но разбивает линию на ячейки в местах.

fscanf(fid, '%s') считывает строку как строку, но удаляет все пробелы.

ответ

8

fgetl(fid) будет делать то, что вы ищете. Новая строка отключена.

+0

Это самое лучшее решение. –

0

пробел рассматривается как разделитель по умолчанию с помощью textscan. укажите другой разделитель (который отсутствует в ваших данных) при вызове, который должен сделать трюк, добавьте это f.e.

'delimiter', '|' 

вы также можете использовать

file = textread(<fileref goes here>, '%s', 'delimiter', '\n') 

затем

file{1,1} 

вернется

ans = 

    2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189 

надеюсь, что это помогает

2

textscan использует пробел по умолчанию. Установите ограничитель в пустую строку:

>> q = textscan(fid, '%s', 'Delimiter', ''); 
>> q{1}{:} 
ans = 2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189 
1

Если вы хотите прочитать весь файл в виде строки (файл содержит только одну строку), попробуйте:

s = fileread('input.txt'); %# returns a char vector 
s = strtrim(s);    %# trim whitespaces 

Если вы посмотрите на исходный код функции FILEREAD, это в основном чтение файл в двоичном режиме, как массив символов: fread(fid, '*char')

0

Использование:

clc; 
fid = fopen('fileName.m'); 

while ischar(tline) 
    disp(strcat("Line imported: ",tline)) 
    tline = fgetl(fid); 
end 

fclose(fid); 
Смежные вопросы