Учебники

MATLAB — Вывод данных

Экспорт данных (или вывод) в MATLAB означает запись в файлы. MATLAB позволяет вам использовать ваши данные в другом приложении, которое читает файлы ASCII. Для этого MATLAB предоставляет несколько вариантов экспорта данных.

Вы можете создать следующий тип файлов —

  • Прямоугольный файл данных ASCII с разделителями из массива.

  • Дневник (или журнал) файла нажатий клавиш и результирующего текстового вывода.

  • Специализированный файл ASCII с использованием низкоуровневых функций, таких как fprintf.

  • MEX-файл для доступа к вашей подпрограмме C / C ++ или Fortran, которая записывает в определенный формат текстового файла.

Прямоугольный файл данных ASCII с разделителями из массива.

Дневник (или журнал) файла нажатий клавиш и результирующего текстового вывода.

Специализированный файл ASCII с использованием низкоуровневых функций, таких как fprintf.

MEX-файл для доступа к вашей подпрограмме C / C ++ или Fortran, которая записывает в определенный формат текстового файла.

Помимо этого, вы также можете экспортировать данные в электронные таблицы.

Существует два способа экспорта числового массива в виде файла данных с разделителями ASCII:

  • Использование функции сохранения и указание спецификатора -ascii

  • Использование функции dlmwrite

Использование функции сохранения и указание спецификатора -ascii

Использование функции dlmwrite

Синтаксис для использования функции сохранения —

save my_data.out num_array -ascii

где my_data.out — созданный файл данных ASCII с разделителями, num_array — числовой массив, а -ascii — спецификатор.

Синтаксис использования функции dlmwrite

dlmwrite('my_data.out', num_array, 'dlm_char')

где my_data.out — созданный файл данных ASCII с разделителями, num_array — числовой массив, а dlm_char — символ разделителя.

пример

Следующий пример демонстрирует концепцию. Создайте файл сценария и введите следующий код —

Live Demo

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 не работают с массивами ячеек в качестве входных данных. Чтобы создать файл ASCII с разделителями из содержимого массива ячеек, вы можете

  • Либо преобразуйте массив ячеек в матрицу, используя функцию cell2mat

  • Или экспортируйте массив ячеек, используя низкоуровневые функции файлового ввода-вывода.

Либо преобразуйте массив ячеек в матрицу, используя функцию cell2mat

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

Если вы используете функцию сохранения для записи массива символов в файл ASCII, он записывает в файл эквивалент символов ASCII.

Например, давайте напишем слово «привет» в файл —

Live Demo

h = 'hello';
save textdata.out h -ascii
type textdata.out

MATLAB выполняет вышеуказанные операторы и отображает следующий результат. это символы строки ‘hello’ в 8-значном формате ASCII.

1.0400000e+02   1.0100000e+02   1.0800000e+02   1.0800000e+02   1.1100000e+02

Запись в дневник

Дневниковые файлы — это журналы активности вашего сеанса MATLAB. Функция дневника создает точную копию вашей сессии в файле на диске, исключая графику.

Чтобы включить функцию дневника, введите —

diary

При желании вы можете дать имя файла журнала, скажем —

diary logdata.out

Чтобы отключить функцию дневника —

diary off

Вы можете открыть файл дневника в текстовом редакторе.

Экспорт данных в текстовые файлы данных с низкоуровневым вводом / выводом

До сих пор мы экспортировали числовые массивы. Однако вам может потребоваться создать другие текстовые файлы, включая комбинации числовых и символьных данных, непрямоугольные выходные файлы или файлы со схемами кодирования, отличными от ASCII. Для этих целей MATLAB предоставляет низкоуровневую функцию fprintf .

Как и в низкоуровневых операциях с файлами ввода-вывода, перед экспортом необходимо открыть или создать файл с помощью функции fopen и получить идентификатор файла. По умолчанию fopen открывает файл только для чтения. Вы должны указать разрешение на запись или добавление, например, «w» или «a».

После обработки файла его необходимо закрыть с помощью функции fclose (fid) .

Следующий пример демонстрирует концепцию —

пример

Создайте файл сценария и введите в нем следующий код —

Live Demo

% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];
 
% open a file for writing
fid = fopen('logtable.txt', 'w');
 
% Table Header
fprintf(fid, 'Log     Function\n\n');
 
% print values in column order
% two values appear on each row of the file
fprintf(fid, '%f    %f\n', y);
fclose(fid);

% display the file created
type logtable.txt

Когда вы запускаете файл, он показывает следующий результат —