6
mex 함수의 모든 반환 값은 mxArray * 형식의 plhs 배열에 저장된다는 것을 알고 있습니다. float 유형의 값을 반환하고 싶습니다. 내가 어떻게 해?mex 함수에서 float 값을 반환하는 방법과 m 파일에서이를 검색하는 방법?
mex 함수에서 반환하고 m 파일에서 가져 오는 코드 예제가 많이 있습니다.
mex 함수의 모든 반환 값은 mxArray * 형식의 plhs 배열에 저장된다는 것을 알고 있습니다. float 유형의 값을 반환하고 싶습니다. 내가 어떻게 해?mex 함수에서 float 값을 반환하는 방법과 m 파일에서이를 검색하는 방법?
mex 함수에서 반환하고 m 파일에서 가져 오는 코드 예제가 많이 있습니다.
플로트 타입 데이터의 MATLAB 클래스 이름은 "single"입니다.
는 MEX-파일에서 당신은 쓸 수 다음 M-파일에서 가져void mexFunction(int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[])
{
// Create a 2-by-3 real float
plhs[0] = mxCreateNumericMatrix(2, 3, mxSINGLE_CLASS, mxREAL);
// fill in plhs[0] to contain the same as single([1 2 3; 4 5 6]);
float * data = (float *) mxGetData(plhs[0]);
data[0] = 1; data[1] = 4; data[2] = 2;
data[3] = 5; data[4] = 3; data[5] = 6;
}
는 다른 함수를 호출처럼 꽤 많이 있습니다. 당신이 MEX-기능 foo
라는 이름의 경우, 다음과 같이 호출 것 :
>> x = foo;
지금
x
는
plhs[0]
에 저장된
single([1 2 3; 4 5 6])
에 단 정밀도 값에 해당 포함됩니다.
간단한 설명과 코드 예제를 보내 주셔서 감사합니다. – drox
+1 멋지고 우아한 대답! – Shai