Я опытный пользователь MATLAB, но абсолютно новый для файлов C и MEX. У меня есть сложная программа, написанная на C, которую мне нужно вызвать из MATLAB. Программа состоит из нескольких десятков файлов в папке, в том числе один, называемый main.c, который обрабатывает входы из командной строки, передает результаты другим классам, которые выполняют фактические вычисления.Создайте файл MATLAB MEX для программы C
Обычно, чтобы установить эту программу из командной строки, я запустил ./configure, сделав в командной строке UNIX. Затем, чтобы запустить программу, ./runMyProgram -f input_file.txt -p some_parameters. Программа принимает текстовый файл, состоящий из списка чисел, как ввод, и печатает таблицу результатов в окне команд. Я хочу передать программе массив MATLAB (вместо файла .txt) и вернуть массив (вместо печатной таблицы результатов).
Я прочитал документацию MEX от Mathworks (который я нашел довольно непрозрачным), а также некоторые другие «учебные пособия», но я полностью потерян - примеры для очень простых однопрофильных программ на C и дона 'действительно обсуждать, как обращаться с более крупной и более сложной программой. Достаточно ли заменить файл main.c файлом MEX, который делает то же самое? Кроме того, как мне собрать весь пакет в MATLAB?
Я был бы признателен за любой простой английский совет о том, с чего начать, или указатели на любые учебники, посвященные предмету понятным образом.
Посмотрите здесь: http://www.shawnlankton.com/2008/03/getting-started-with-mex-a-short-tutorial/. Это очень помогло мне, когда я начинал. – Justin
Это боль для создания сложных файлов MEX. Не ожидайте, что это будет хороший опыт. :) – Memming
Почему бы вам просто не использовать 'system' или аналогичный для запуска программы из MATLAB, а затем проанализировать вывод? Таким образом, вам не нужно писать код C или беспорядок с кодом программы (и вам не придется делать это снова, если программа будет обновлена его автором). – wakjah