728x90
반응형
[1]에서 설명한 내용에 여러가지 결과를 출력하는 경우를 가정하여 예제를 꾸며 봤다.
/* ========================================================================= */
#include "mex.h"
void test1(int x, int y, int *z1, int *z2, int *z3)
{
*z1=x+y;
*z2=x-y;
*z3=x*y;
}
/* The gateway routine. */
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
int x, y, *z1, *z2, *z3;
x = (int)mxGetScalar(prhs[0]);
y = (int)mxGetScalar(prhs[1]);
/* Create matrix for the return argument.*/
plhs[0] = mxCreateNumericMatrix(1, 1, mxINT16_CLASS, mxREAL);
plhs[1] = mxCreateNumericMatrix(1, 1, mxINT16_CLASS, mxREAL);
plhs[2] = mxCreateNumericMatrix(1, 1, mxINT16_CLASS, mxREAL);
z1 = (int)mxGetPr(plhs[0]);
z2 = (int)mxGetPr(plhs[1]);
z3 = (int)mxGetPr(plhs[2]);
/* Call the function subroutine.*/
test1(x, y, z1, z2 , z3);
}
/* ========================================================================= */
위의 코드를 matlab에서 >>mex test1.c로 컴파일한 후
>> [z1 z2 z3]=test(1,2)를 치면 아래의 결과가 나온다.
z1 = 3
z2 = -1
z3 = 2
728x90
반응형
'Programming > Matlab, Octave, Scilab' 카테고리의 다른 글
Ballard Tech.사의 ARINC429 Card (0) | 2010.05.01 |
---|---|
[Matlab] M 코드를 독립적인 실행파일로 만들기. (1) | 2010.05.01 |
[Matlab] C/C++의 함수 및 기능을 Matlab으로.. [1] (0) | 2010.05.01 |
[Matlab] Serial Port Control (0) | 2010.05.01 |
[Matlab] mex GUIDE (0) | 2010.05.01 |
댓글