как преобразовать Matlab в C с помощью кодера MATLAB

Я хочу преобразовать код Matlab в код C с помощью кодировщика MATLAB, но это не работает.

Я попытался ниже код Matlab ... и построить с помощью кодировщика MATLAB

 function  example()

     recObj = audiorecorder(44100,16,1); 
     disp('Start speaking.');
     recordblocking(recObj, 5);
     disp('End of Recording.');

      play(recObj);

Но есть некоторые ошибки. подобно..

кодер -сборка ex1.prj ??? Класс audiorecorder не поддерживает генерацию кода.

  Error in ==> example Line: 2 Column: 10
  Code generation failed: Open error report.

Итак, я попытался удалить функцию аудиозаписи, но это также не сработало.

Я не знаю, какая проблема в этом коде. Как мне это сделать? Пожалуйста помоги.


person user2688423    schedule 28.06.2014    source источник
comment
Просто невозможно сгенерировать код для аудиорекордера, если вам нужен аудиорекордер, вы должны перереализовать функционал в c.   -  person Daniel    schedule 28.06.2014
comment
Этот вопрос, похоже, связан с вашим предыдущим (развертывание на Android). Я думаю, что это неправильный способ развертывания кода, связанного с мультимедиа, с Matlab на Android, потому что вам нужно иметь дело с Android API и разрешениями. Каков твой план?   -  person Daniel    schedule 28.06.2014
comment
Да, на самом деле я хочу использовать код Matlab на Java (развернуть на Android). И я нахожу один вариант, который преобразует Matlab в код C и использует этот код C для развертывания на Android. Но это тоже плохо работает.   -  person user2688423    schedule 29.06.2014
comment
Да, на самом деле я хочу использовать код Matlab на Java (развернуть на Android). И я нахожу один вариант, который преобразует Matlab в код C и использует этот код C для развертывания на Android. Но теперь мне не удалось преобразовать код Matlab в код C. Собственно, код, который я написал для записи с помощью матлаба, это просто пример, хоть я и пытался скрыть просто дисп-функцию [function example() disp('Начать говорить.');] в C-код, но он тоже не работает . Как мне это сделать ? Пожалуйста помоги.   -  person user2688423    schedule 29.06.2014
comment
Я думаю, вы просто выбрали не тот язык программирования, вам действительно нужно использовать матлаб?   -  person Daniel    schedule 29.06.2014
comment
Да, на самом деле я уже реализую алгоритмы с помощью Matlab, поэтому я хочу повторно использовать свой код...   -  person user2688423    schedule 29.06.2014


Ответы (2)


Не каждую функцию MATLAB можно преобразовать в код C.

Список поддерживаемых функций см. в здесь.

Если вы хотите использовать функции MATLAB, которых нет в списке, вы должны написать свою собственную версию в MATLAB (если возможно, в вашем случае я сомневаюсь) или в C.

person ThP    schedule 28.06.2014

Это может быть бесполезно для развертывания на Android, но есть dsp .AudioRecorder Системный объект, который поддерживает генерацию кода C и позволяет записывать звук. Полученный код можно запустить в системах, где установлен MATLAB.

Другой вариант — написать свой вычислительный алгоритм в коде, совместимом с MATLAB Coder, и выполнить захват звука, взаимодействие с пользователем и тому подобное с помощью Android API. Затем вы можете просто передать захваченные аудиоданные в сгенерированный собственный код для обработки. Я видел аналогичный подход к обработке изображений, когда Android API использовался для захвата изображений, которые затем отправлялись в код C, сгенерированный с помощью MATLAB Coder для обработки.

person Ryan Livingston    schedule 01.07.2014