Как сохранить данные в текстовый файл в заданном формате?
-
06-09-2019 - |
Вопрос
Я хочу сохранить матрицу в текстовый файл, чтобы я мог прочитать ее с помощью другой программы.Прямо сейчас я использую:
save('output.txt', 'A','-ascii');
Но это сохраняет мой файл как
6.7206983e+000 2.5896414e-001
6.5710723e+000 4.9800797e-00
6.3466334e+000 6.9721116e-001
5.9975062e+000 1.3346614e+000
6.0224439e+000 1.8127490e+000
6.3466334e+000 2.0517928e+000
6.3965087e+000 1.9721116e+000
Но я бы хотел, чтобы они были сохранены без "электронной нотации" и не со всеми цифрами.Есть ли простой способ сделать это?
Редактировать:Спасибо!Это работает просто отлично.Извините, но я думаю, что перепутал вашу правку, используя откат.
Решение
Я бы использовал fprintf
функция, которая позволит вам самим определить, в каком формате выводить данные.Например:
fid = fopen('output.txt', 'wt');
fprintf(fid,'%0.6f %0.6f\n', A.');
fclose(fid);
Это выведет матрицу A с точностью до 6 цифр после запятой.Обратите внимание, что вы также должны использовать функции fopen
и fclose
.
Другие советы
То же самое с решением gnovice, если вам нужна производительность и пользовательское форматирование.
dlmwrite
дает вам некоторый контроль (глобальный, а не для каждого поля) над форматированием.Но он страдает от более низкой производительности.Я запускал тест несколько лет назад, и dlmwrite был примерно в 5-10 раз медленнее, чем решение fopen / fprintf / fclose.(редактировать:Я имею в виду большие матрицы, такие как матрица 15x10000)