2016-06-17 7 views
1

이것은 이전 StackOverflow 게시물 (Undefined function in MATLAB)에서 물어 본 질문과 비슷한 질문입니다.MATLAB에서 정의되지 않은 전용 함수

기본적으로 최신 MATLAB 릴리스에서 dtw 기능을 사용하고 있으며 일부 부분을 조정하려고합니다.

edit dtw 

내가 dtw_Copy.m라는 파일에 결과 코드를 저장뿐만 아니라 dtw_Copy에 함수의 이름을 변경 : 시작하려면, 내가 입력했습니다.

Undefined function 'dtwmex' for input arguments of type 'double'. 

나는 또한 내가 코드 라인을 통해 이동하지 않을 경우이 오류 메시지가, 단순히 : 입력 매개 변수 xy의 세트 라인으로 코드 라인을 통해가는, 나는 오류 메시지가 나타납니다 입력 매개 변수 집합 xy을 다시 테스트 한 후 dtw_Current(x,y)을 입력하십시오. 실행시

는 :

help 'dtwmex' 

dtwmex가 발견되지 않는 것으로 표시됩니다. 나는 또한 시도했다 :

edit 'dtwmex' 

그러나 currentDirectory/dtwmex.m은 존재하지 않는다고 말한다.

온라인 검색 중 오류가 발생하여 a resource that seemed straight-forward이 발견되었습니다. 도구 상자가 설치되어 있는지 확인하는 것이 좋습니다. 어떤 도구 상자가 dtwmex 함수를 지원하는지 확신 할 수 없으므로 함수 이름을 website에 입력합니다. 결과는 "귀하의 검색 - dtwmex -는 모든 문서와 일치하지 않습니다."라는 메시지가 나타납니다.

또한 리소스는 기능에 액세스하는 데 사용 된 경로를 확인하는 것이 좋습니다. 나는 그렇게 지침에 따라, 나는시를 입력 :

which -all dtwmex 

나는 나타납니다

currentDirectory\matlab\toolbox\signal\signal\private\dtwmex.mexw64 % Private to signal 

이 기능이 비공개 신호 도구 상자에 있음을 표시하는 것? dtw_Current(x,y)을 실행하거나 내용을 줄 단위로 실행할 가능성이 있습니까?

dtwmex.mexw64 파일을 열어서 서브 루틴으로 내용을 추가하려고했지만 (이전 질문에서 해결책이었던 것처럼) 열 수 없다고합니다.

+2

개인 기능을 사용할 때마다이 질문을 할 것입니까? – excaza

+3

나는 이것이 내 비슷한 최근의 질문과 중복되지 않는다고 생각한다. 이번에는 서브 루틴으로 private 함수의 코드를 추가 할 수 없기 때문에 이전 게시물의 솔루션을 여기에 복사 할 수 없습니다. – LAR

+2

아, 그 대답의 요점은 그렇지 않으면 액세스 할 수 없기 때문에 개인 폴더에서 파일을 복사하는 것이 었습니다. 가능한 "복사"의 모든 변형에 대해 질문이 진지하게 필요합니까? – excaza

답변

2

이 함수는 도구 상자의 private 폴더에있는 컴파일 된 mex 파일입니다. private folders are special in MATLAB이고 그 내용은 이며 상위 디렉토리의 파일 인에서만 액세스 할 수 있습니다. 귀하의 경우 이것은 toolbox/signal/signal 폴더에 정의 된 기능 만이 기능을 찾고 호출 할 수 있음을 의미합니다. 이 mex 파일에 액세스하려면 실제로 두 가지 옵션이 있습니다.

  1. 뿐만 아니라 신호 처리 도구 상자 폴더 내에 수정 된 기능을 저장하고 그것을 private 폴더를 볼 수 있습니다. 단점은 MATLAB 설치를 수정하고 있다는 것입니다.

  2. 복사 외부 기능 (기본적으로 어디 하지만private 폴더)에서 액세스 할 수 것을 어딘가로 private 폴더 내에있는 필요한 파일.

이들 중 아무 것도 실제로 권장되지 않습니다.

관련 문제