2016-12-23 2 views
0

짧은 질문 :같은 디렉토리에서 동일한 이름을 가진 MATLAB의 m-파일 MEX-파일을 호출

나는 같은 디렉토리에이 개 파일이 있습니다. 첫 번째 파일은 MATLAB을하는 .m 파일이고, 다른 하나는 MATLAB의 MEX-파일입니다

MyFunction.m

MyFunction.mexw64

두 파일이 MyFunction(1,2,3,'Test')를 통해 호출 될 수 있기 때문에, 나는 현재 호출 할 수 없습니다 그들 중 누구든. 호출하려는 파일의 확장을 지정하는 방법이 있습니까? 이 같은 아마 뭔가 (작동하지 않는) : 사전에 더 쉽게 솔루션, 나는 다른 디렉토리에 파일을 이동하도록 강요 될 수 없을 경우

MyFunction.m(1,2,3,'Test')

...

감사합니다 !

답변

2

아니요, 없습니다. 이는 MATLAB의 function precedence order이 있기 때문에 경로의 모든 MEX 파일은 항상 같은 이름의 M 파일보다 우선합니다.

이 주변의 일반적인 방법은 두 파일에 대한 다른 이름을 사용하는 것입니다, 그리고 래퍼는이 같은 포함

function varargout = MyFunction(varargin) 

    if exist('MyFunction_MEX', 'file') == 3 
     [varargout{1:nargout}] = MyFunction_MEX(varargin{:}); 

    elseif any(exist('MyFunction_M', 'file') == [2 5 6]) 
     [varargout{1:nargout}] = MyFunction_M(varargin{:}); 

    else 
     error([mfilename ':function_not_found'],... 
       'An M file or MEX file with matching signature could not be found.'); 
end