Пользовательские приложения для доступа к MAT-файлам

Зачем писать пользовательские приложения?

Для переноса данных в MATLAB® приложение, см. Методы для импорта данных. Чтобы сохранить данные в MAT-файле, смотрите Сохраните и Загрузите Переменные Рабочей области. Используйте эти процедуры при программировании всего приложения в MATLAB или при обмене данными с другими пользователями MATLAB. Бывают ситуации, однако, когда для взаимодействия с данными необходимо написать пользовательскую программу. Для примера:

  • Ваши данные имеют пользовательский формат.

  • Вы создаете приложения для пользователей, которые не запускают MATLAB, и хотите предоставить им данные MATLAB.

  • Вы хотите считать данные из внешнего приложения, но у вас нет доступа к исходному коду.

Прежде чем писать пользовательское приложение, определите, удовлетворяет ли MATLAB ваши потребности в обмене данными, рассмотрев следующие темы.

Если этих функций недостаточно, можно создать пользовательские программы на C/C + + или Фортран для чтения и записи файлов данных в формате, требуемом вашим приложением. Существует два типа пользовательских программ:

  • Автономная программа - Запуск из системы приглашения или выполнение в MATLAB (см. Запуск внешних команд, скриптов и программ). Для создания приложения требуются библиотеки MATLAB.

  • Файл MEX - Построено и выполняем из командной строки MATLAB. Дополнительные сведения о создании и создании файлов MEX см. в разделе Приложения к файлам MEX на C.

Библиотека интерфейсов MAT-файлов

MAT-File API содержит стандартные программы чтения и записи MAT-файлов. Вызовите эти стандартные программы из собственных программ C/C + + и Фортран. Используйте эти стандартные программы, а не пытайтесь записать свой собственный код, чтобы выполнить эти операции, поскольку использование библиотеки изолирует ваши приложения от будущих изменений структуры MAT-файлов. Для получения дополнительной информации см. «Библиотека API MAT-файлов» и «Включить файлы».

MATLAB обеспечивает MATFile тип для представления MAT-файла.

Стандартные программы MAT-файлов

Функция API MAT-файла

Цель

matOpen

Откройте MAT-файл.

matClose

Закройте MAT-файл.

matGetDir

Получите список массивов MATLAB из MAT-файла.

matGetVariable

Считайте массив MATLAB из MAT-файла.

matPutVariable

Запись массива MATLAB в MAT-файл.

matGetNextVariable

Считайте следующий массив MATLAB из MAT-файла.

matDeleteVariable

Удалите массив MATLAB из MAT-файла.

matPutVariableAsGlobal

Поместите массив MATLAB в MAT-файл, так что load команда помещает его в глобальную рабочую область.

matGetVariableInfo

Загрузите заголовок массива MATLAB из MAT-файла (без данных).

matGetNextVariableInfo

Загрузите следующий заголовок массива MATLAB из MAT-файла (без данных).

MAT-файл только для C- Стандартных программ

matGetFp

Получите ANSI® Указатель на файл C на MAT-файл.

Библиотека интерфейсов MAT-файлов не поддерживает объекты MATLAB, созданные определенными пользователем классами.

Не создавайте различные сеансы работы с MATLAB в разных потоках с помощью функций MAT-File API. Библиотеки MATLAB не являются многопоточными безопасными, поэтому эти функции можно использовать только в одном потоке за раз.

Обмен файлами данных между платформами

Вы можете работать с программным обеспечением MATLAB в различных компьютерных системах и отправлять приложения MATLAB пользователям в других системах. Приложения MATLAB состоят из кода MATLAB, содержащего функции и скрипты, и MAT-файлов, содержащих двоичные данные.

Оба типа файлов могут быть перенесены непосредственно между машинами: исходные файлы MATLAB, потому что они являются независимыми от платформы, и MAT-файлы, потому что они содержат подпись машины в заголовке файла. MATLAB проверяет сигнатуру при загрузке файла и, если сигнатура указывает, что файл является иностранным, выполняет необходимое преобразование.

Использование MATLAB в различных архитектурах машин требует средства для обмена двоичными данными и данными ASCII между машинами. Примеры этого типа объектов включают FTP, NFS и Kermit. При использовании этих программ будьте осторожны, чтобы передать MAT-файлы в двоичном файловом режиме и исходные файлы MATLAB в ASCII-файл режиме. Отказ установки этих режимов правильно повреждает данные.