English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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

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

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

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

  • Журнал клавиатуры (или лог) и текстовый вывод результатов.

  • Специализированный ASCII файл, используемый для записи данных с помощью низкоуровневых функций (например, fprintf).

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

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

Есть два способа экспортировать числовой массив в файл ASCII данных с ограничителями-

  • Использованиеsaveфункция и указать-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];
сохранить массив_данных1.out num_array -ascii;
тип массив_данных1.out
dlmwrite('массив_данных2.out', num_array, ' ');
тип массив_данных2.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Функция преобразует массив элементов в матрицу

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

Если использоватьsaveФункция записи массива символов в файл ASCII эквивалентна записи символов в файл в формате ASCII.

Например, давайте напишем слово "hello" в файл-

h = 'hello';
savetextdata.outh -ascii
type textdata.out

MATLAB выполняет указанные выше инструкции и отображает следующие результаты. Это строка в 8-битном формате ASCII "hello".

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)Функция его закрывает.

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

Пример

Создайте файл скрипта и введите следующий код-

%Создается матрица y с двумя строками
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