Вызов функции MATLAB в программе на C - PullRequest
0 голосов
/ 02 октября 2018

У меня есть функция MATLAB, показанная ниже.

function strReturnAlpha = NumberToAlphabet(num)
%This function gets input as numbers
% and disp[lays the corresponding alphabet
Alphabet=char('abcdefghijklmnopqrstuvwxyz');
if(num < 1 || num > 26)
    strReturnAlpha=strcat('There is no alphabet associated with ',{' 
'},num2str(num));
else
   strReturnAlpha=strcat('The alphabet is ',{' '},Alphabet(num));
end

Я сгенерировал файлы lib.

Я пытаюсь вызвать функции MATLAB из программы Vc ++

C ++function:

if (mclInitializeApplication(NULL, 0) == false) 
{
    AfxMessageBox(_T("Could not initialize the application properly."));
    return;
}
NumberToAlphabetInitialize();

const mwSize dims[] = { 1,1 };
int *start_of_pr;
int data[] = { 1 };
size_t bytes_to_copy= sizeof(data);

mxArray *mx_a = mxCreateNumericArray(2, dims, mxINT16_CLASS,  mxREAL);

start_of_pr =(int *) mxGetData(mx_a);

start_of_pr[0] = 1;

char str[30];
size_t buflen=30;
mxArray*  output_buf;
output_buf =(mxArray *) mxCalloc(buflen, sizeof(char));

mlxNumberToAlphabet(1, &output_buf, 1, &mx_a);

int len= (mxGetM(output_buf) * mxGetN(output_buf) + 1);
CString sstr;
mxGetString(output_buf,str, sizeof(output_buf));

sstr=str;
AfxMessageBox(sstr);
mxDestroyArray(mx_a);
mxFree(output_buf);

NumberToAlphabetTerminate();
mclTerminateApplication();

Не могли бы вы помочь мне с интерфейсом MATLAB, описанным выше, в программе на C ++?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...