MATLAB é um ambiente de programação técnica otimizada para rivalizar com a velocidade e eficiência da linguagem C quando se trata de operações de vetor. No entanto , há um certo conjunto de operações em que C é muito mais eficiente . Pode ser benéfico para escrever certas partes do seu fluxo de trabalho tanto em MATLAB e C. C programas podem ser compilados em sub-rotinas MATLAB usando o utilitário " MEX " . Instruções
1
Crie uma cópia do arquivo de programa C que deseja adaptar em uma sub-rotina do MATLAB.
2
Adicione o arquivo de cabeçalho " mex.h " para o arquivo de programa C que pretende compilar em uma sub-rotina MATLAB :
# include " mex.h "
3
Adicionar uma função de gateway " mexFunction " para o seu C arquivo de programa após a sua função de sub-rotina para atuar como uma interface entre o MATLAB e seu código C . Os argumentos de " mexFunction " deve incluir todas as entradas e os argumentos de saída para o sub-rotina.
4
Escrever código em " mexFunction " para validar o número de entradas e saídas necessárias , bem como o bom tipo de dados, tamanho e alcance. A linguagem C e funções não deixam tão graciosamente como funções MATLAB baseados em scripts
5
Use a função " mexErrMsgIdAndTxt ()" para lançar erros para MATLAB quando argumentos são incorretas : .
mexErrMsgIdAndTxt ( " MyToolbox : myMexFunction : missingInput ", " . Input falta myMexFunction requer 2 entradas . ");
6
Use MEX " getter " funções de conversão do formato MATLAB dados de entrada para C dados formato:
myNumber = mxGetScalar ( myInputs [0] ); myMatrixPointer = mxGetPr ( myInputs [1] );
Consulte a documentação do MATLAB para uma lista completa dessas funções .
7
Use MEX " criar" funções para criar os dados do MATLAB em que para armazenar o resultado da sua função C . A entrada " mxREAL " especifica o tipo de dados
myOutputs [0] = mxCreateDoubleMatrix (1, nColumns , mxREAL ); . OutputMatrixInMATLAB = mxGetPtr ( myOutputs [0] );
8
Chame o seu C sub-rotina a partir do seu " mexFunction ".
9
diretório de trabalho atual do MATLAB direto para o diretório que contém o arquivo C usando o menu Arquivo ou o comando "cd" para alterar os diretórios . na linha de comando
10
compilar seu programa C usando o comando MATLAB " mex : "
mex myMexFunction.c
11
Executar sua função no MATLAB :
myMexFunction ( entradas, saídas, ... )