Экспорт данных из MATLAB: форматы файлов и методы
Экспорт данных — запись в файлы. MATLAB позволяет использовать данные в других приложениях, читающих ASCII. Несколько способов экспорта:
- Прямоугольный ASCII-файл с разделителем из массива
- Дневник (diary) — лог нажатий и вывода
- Специализированный ASCII через низкоуровневый
fprintf - MEX-файлы для C/C++/Fortran рутин
- Экспорт в электронные таблицы
Экспорт числового массива в ASCII с разделителем
Два способа:
saveс квалификатором-asciidlmwrite
Синтаксис save
save my_data.out num_array -ascii
Синтаксис dlmwrite
dlmwrite('my_data.out', num_array, 'dlm_char')
Пример
num_array = [1 2 3 4; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii; type array_data1.out
dlmwrite('array_data2.out', num_array, ' '); type array_data2.out
Результат:
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00 4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00 7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00 1 2 3 4 4 5 6 7 7 8 9 0
save -ascii пишет в экспоненциальном формате, dlmwrite — в обычном с заданным разделителем.
Важно: Эти функции не работают с клеточными массивами. Нужно преобразовать в матрицу (cell2mat) или использовать низкоуровневый I/O.
Запись символьного массива через save -ascii записывает ASCII-коды символов:
h = 'hello'; save textdata.out h -ascii; type textdata.out
Результат: 1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02 (коды h,e,l,l,o).
Дневниковые файлы (Diary)
Точная копия сессии (без графики).
diary % включить (файл diary) diary logdata.out % с именем файла diary off % выключить
Файл можно открыть в текстовом редакторе.
Экспорт в текстовые файлы низкоуровневым I/O
Для смешанных данных, нерегулярных файлов, не-ASCII кодировок — fprintf.
- Открыть файл:
fid = fopen('filename', 'w')('w'— запись,'a'— дозапись) - Записать:
fprintf(fid, format, data) - Закрыть:
fclose(fid)
Пример: таблица логарифмов
x = 0:10:100;
y = [x; log(x)];
fid = fopen('logtable.txt', 'w');
fprintf(fid, 'Log Function\n\n');
fprintf(fid, '%f %f\n', y); % запись в столбцовом порядке
fclose(fid);
type logtable.txt
Результат (файл):
Log Function 0.000000 -Inf 10.000000 2.302585 20.000000 2.995732 30.000000 3.401197 40.000000 3.688879 50.000000 3.912023 60.000000 4.094345 70.000000 4.248495 80.000000 4.382027 90.000000 4.499810 100.000000 4.605170
MATLAB
- Azure File Storage: руководство для начинающих по безопасному, масштабируемому облачному хранилищу
- Освоение ввода-вывода файлов в C: создание, открытие и управление файлами
- Типы данных в MATLAB: Полное руководство с примерами
- Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
- Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
- MATLAB: Мастерство работы с многомерными и специальными массивами
- Оператор двоеточия в MATLAB: создание векторов и эффективная итерация
- Числа в MATLAB: типы, хранение и преобразование
- Строки в MATLAB: создание, манипуляции и функции
- Функции в MATLAB: определение, рабочая область, входные и выходные аргументы