MATLAB — вывод данных
Экспорт (или вывод) данных в MATLAB означает запись в файлы. MATLAB позволяет вам использовать ваши данные в другом приложении, которое читает файлы ASCII. Для этого MATLAB предоставляет несколько вариантов экспорта данных.
Вы можете создавать файлы следующего типа —
-
Прямоугольный файл данных ASCII с разделителями из массива.
-
Файл дневника (или журнала) нажатий клавиш и итогового текстового вывода.
-
Специализированный файл ASCII, использующий низкоуровневые функции, такие как fprintf.
-
MEX-файл для доступа к вашей подпрограмме C/C++ или Fortran, которая записывает в определенный формат текстового файла.
Кроме того, вы также можете экспортировать данные в электронные таблицы.
Есть два способа экспортировать числовой массив в виде файла данных ASCII с разделителями —
-
Использование сохранения функция и указание -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 является символом-разделителем.
Пример
Следующий пример демонстрирует концепцию. Создайте файл сценария и введите следующий код —
Живая демонстрация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. функция
-
Или экспортируйте массив ячеек, используя низкоуровневые функции файлового ввода-вывода.
Если вы используете сохранить Функция для записи массива символов в файл ASCII, она записывает эквивалент символов ASCII в файл.
Например, давайте запишем слово «привет» в файл —
Живая демонстрацияh = 'hello'; save textdata.out h -ascii type textdata.out
MATLAB выполняет приведенные выше операторы и отображает следующий результат. который представляет собой символы строки «привет» в 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). функция.
Следующий пример демонстрирует концепцию —
Пример
Создайте файл сценария и введите в него следующий код —
Живая демонстрация% 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
Когда вы запускаете файл, он отображает следующий результат —
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