Откройте текстовые файлы в Matlab и сохраните их из Matlab - PullRequest
0 голосов
/ 31 декабря 2011

У меня большой текстовый файл, содержащий данные, которые необходимо извлечь и вставить в новый текстовый файл.Возможно, мне нужно сохранить эти данные в массиве ячейки / матрицы?

Но сейчас вопрос в том, что я пытаюсь проверить меньший набор данных, чтобы проверить, работает ли приведенный ниже код.

У меня есть код, в котором он открывает текстовый файл, просматривает его, копирует данные и сохраняет его в другом текстовом файле с именем «output.txt».

Проблема: похоже, файл не сохраняется должным образом.Он просто показывает пустой массив в текстовом файле, например, " [] ".Оригинальный текстовый файл содержит только строку символов.

%opens the text file and checks it line by line.
fid1 = fopen('sample.txt');
tline = fgetl(fid1);
while ischar(tline)
    disp(tline);
    tline = fgetl(fid1);
end
fclose(fid1);


% save the sample.txt file to a new text fie
fid = fopen('output.txt', 'w');
fprintf(fid, '%s %s\n', fid1);
fclose(fid);

% view the contents of the file
type exp.txt

Куда мне идти?

Ответы [ 2 ]

5 голосов
/ 31 декабря 2011

Не рекомендуется читать входной файл, загружая все его содержимое в память одновременно. Таким образом, размер файла, который вы можете прочитать, ограничен объемом памяти на компьютере (или объемом памяти, который ОС готова выделить для одного процесса).

Вместо этого используйте fopen и связанную с ним функцию, чтобы читать файл построчно или символ за символом.

Например,

fid1 = fopen('sample.txt', 'r');
fid = fopen('output.txt', 'w');

tline = fgetl(fid1);
while ischar(tline)
    fprintf(fid, '%s\n', tline);
    tline = fgetl(fid1);    
end

fclose(fid1);
fclose(fid);

type output.txt

Конечно, если вы заранее знаете, что входной файл никогда не будет большим, вы можете прочитать его сразу, используя текстовое чтение или какую-либо эквивалентную функцию.

2 голосов
/ 31 декабря 2011

Попробуйте использовать textread, он считывает данные из текстового файла и сохраняет их в виде матрицы или массива ячеек. В конце концов, я предполагаю, что вы хотите, чтобы данные были сохранены в переменной, чтобы манипулировать ими по мере необходимости. Когда вы закончите манипулировать, откройте файл с помощью fopen и используйте fprintf для записи данных в нужном формате.

...