나는 this example을 따르고 있습니다. 그러나 내가 무엇을 놓쳤는 지 잘 모르겠습니다. 특히, 내가 MATLAB에서이 구조체가 :mex의 matlab 구조체에서 데이터를 추출하는 중
a = struct; a.one = 1.0; a.two = 2.0; a.three = 3.0; a.four = 4.0;
을 그리고 이것은
이첫째, 내가 옳은 일을 전달하고 있습니다 있는지 확인하고 싶었 MEX 내 테스트 코드 ---, 그래서 이 검사를 수행 했는가 :
int nfields = mxGetNumberOfFields(prhs[0]);
mexPrintf("nfields =%i \n\n", nfields);
나는 4 개의 필드를 가지고 있으므로 4
을 산출한다. 내가 필드 three
의 값을 추출하려고 할 때
그러나 :
는tmp = mxGetField(prhs[0], 0, "three");
mexPrintf("data =%f \n\n", (double *)mxGetData(tmp) );
이 data =1.000000
를 반환합니다. 내가 뭘 잘못했는지 모르겠다. 내 논리는 필드 three
의 첫 번째 요소 (따라서 인덱스가 0 임)를 가져 오려고하므로 data =3.00000
이 될 것으로 예상됩니다.
포인터 나 힌트를 얻을 수 있습니까?
첫 번째 제안을 시도했지만 여전히'''data = 1.000000'''를 제공하고있었습니다. 두 번째 제안은 인덱스를 사용해야하므로 시도 할 수 없습니다. 그렇지 않으면 오류가 발생합니다. 오류 : 일치하지 않음 'mxGetFieldNumber'에 대한 호출에 대해 함수가 사용됩니다. – tryingtosolve
첫 번째 제안에서 내 접근 방식과 다른 점은 무엇입니까? – tryingtosolve
@MadPhysicist 그래도 오류가 발생합니다. 왜 나는''''''''''''''지수를 줄 수는없는 것일까 요? 여러 입력을 가질 수 있습니다. – tryingtosolve