이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

함수 호출 시 흔히 나타나는 오류

함수 이름과 변수 이름 간의 충돌

변수와 함수가 동일한 이름으로 지정되어 있는데 MATLAB®이 충돌을 해결하기에 충분한 정보가 없는 경우 MATLAB에서 오류가 발생합니다. 다음과 같은 오류 메시지가 나타날 수 있습니다.

Error: <functionName> was previously used as a variable,
  conflicting with its use here as the name of a function 
  or command.

여기서 <functionName>은 함수의 이름입니다.

eval 함수와 load 함수 사용 시, 경우에 따라 변수 이름 및 함수 이름 간에 이와 유사한 충돌이 발생할 수 있습니다. 자세한 내용은 다음을 참조하십시오.

정의되지 않은 함수 또는 변수

MATLAB에서 함수 또는 변수를 사용하는 동안 다음과 같거나 이와 유사한 오류 메시지가 나타날 수 있습니다.

Undefined function or variable 'x'.

이러한 오류는 대개 MATLAB이 현재 디렉터리나 검색 경로에서 특정 변수 또는 MATLAB 프로그램 파일을 찾을 수 없음을 나타냅니다. 근본 원인은 다음 중 하나일 수 있습니다.

  • 함수 이름의 철자가 잘못되었습니다.

  • 함수 이름과, 함수를 포함하는 파일 이름이 동일하지 않습니다.

  • 함수가 속한 툴박스가 설치되지 않았습니다.

  • 함수에 대한 검색 경로가 변경되었습니다.

  • 함수가 라이선스가 없는 툴박스에 속해 있습니다.

이 상황을 해결하려면 이 섹션에 설명되어 있는 단계를 따르십시오.

함수 이름의 철자 확인

가장 일반적으로 나타나는 오류 중 하나는 함수 이름의 철자를 잘못 입력하는 경우입니다. 특히, 함수 이름이 길거나 비슷한 문자(예: 문자 l과 숫자 1)가 포함된 이름을 사용하는 경우 철자 오류를 범하기 쉬우며 이러한 오류는 발견하기가 쉽지 않습니다.

MATLAB 함수의 철자를 잘못 입력한 경우 명령 창에 정정된 함수 이름이 제안됩니다. 예를 들어, 다음 명령은 함수 이름에 대문자가 포함되어 있으므로 실행되지 않습니다.

accumArray
Undefined function or variable 'accumArray'.
 
Did you mean:
>> accumarray

정정 제안된 명령을 실행하려면 Enter 키를 누르고 이를 무시하려면 Esc 키를 누르십시오.

함수 이름이 파일 이름과 일치하는지 확인

함수 정의 라인을 쓸 때 함수 이름을 설정합니다. 이 함수 이름은 함수를 저장하는 파일 이름과 항상 일치해야 합니다. 예를 들어, curveplot이라는 함수를 생성하는 경우

function curveplot(xVal, yVal)
     - program code -

해당 함수를 포함하는 파일의 이름을 curveplot.m으로 지정해야 합니다. 이 함수의 pcode 파일을 생성하는 경우 해당 파일의 이름을 curveplot.p로 설정합니다. 함수 이름과 파일 이름이 충돌하는 경우, 파일 이름이 함수에 지정된 이름을 재정의합니다. 이 예제에서, curveplot 함수를 curveplotfunction.m이라는 이름의 파일에 저장할 경우 이 함수 이름을 사용하여 함수를 불러오려고 하면 실패하게 됩니다.

curveplot Undefined function or variable 'curveplot'.

이러한 문제가 발생하면 서로 같은 이름을 갖도록 함수 이름이나 파일 이름을 변경하십시오. 이 함수를 사용하는 파일을 찾기 어려운 경우에는 다음과 같이 MATLAB의 파일 찾기(Find Files) 유틸리티를 사용하십시오.

  1. 홈(Home) 탭의 파일(File) 섹션에서 파일 찾기(Find Files)를 클릭합니다.

  2. 다음 이름의 파일 찾기:*.m을 입력합니다.

  3. 텍스트가 포함된 파일 찾기:(Under Find files containing text:)에 함수 이름을 입력합니다.

  4. 찾기(Find) 버튼을 클릭합니다.

툴박스가 설치되어 있는지 확인

MATLAB이나 해당 툴박스의 내장 함수를 사용할 수 없는 경우 함수가 설치되어 있는지 확인합니다.

필요한 함수를 지원하는 툴박스를 알지 못하는 경우 https://www.mathworks.com/help에서 함수 도움말 문서를 검색하십시오. 툴박스 이름이 함수 도움말 페이지 맨 위에 표시됩니다.

함수가 속한 툴박스를 확인했으면 ver 함수를 사용하여 MATLAB을 실행하는 시스템에 설치되어 있는 툴박스를 확인합니다. ver 함수는 현재 설치되어 있는 모든 MathWorks® 제품 목록을 표시합니다. ver 함수가 표시하는 출력값에서 필요한 툴박스를 찾을 수 있으면 해당 툴박스가 설치되어 있는 것입니다. MathWorks 제품 설치 관련 도움말은 설치 안내서를 참조하십시오.

툴박스를 볼 수는 없지만 설치되어 있다고 확신하는 경우 MATLAB 경로가 잘못 설정되었을 수 있습니다. 다음 섹션을 참조하십시오.

함수에 액세스하는 데 사용된 경로 확인

이 단계에서는 경로를 디폴트로 재설정합니다.

MATLAB은 캐시 파일에 툴박스 정보를 저장하기 때문에 이 캐시를 먼저 업데이트한 후 경로를 재설정해야 합니다. 이를 위해 다음을 수행합니다.

  1. 홈(Home) 탭의 환경(Environment) 섹션에서 기본 설정(Preferences)을 클릭합니다.

    기본 설정 대화 상자가 나타납니다.

  2. MATLAB > 일반(General) 노드에서 툴박스 경로 캐시 업데이트(Update Toolbox Path Cache) 버튼을 클릭합니다.

  3. 홈(Home) 탭의 환경(Environment) 섹션에서 경로 설정...(Set Path...)을 클릭합니다.

    경로 설정 대화 상자가 열립니다.

  4. 디폴트(Default)를 클릭합니다.

    작은 대화 상자가 열리고 계속 진행할 경우 현재 경로 설정이 손실된다는 내용의 경고가 표시됩니다. 계속 진행하려면 예(Yes)를 클릭하십시오.

(사용자 지정 경로를 MATLAB에 추가한 경우 나중에 이를 복원해야 합니다.)

ver 함수를 다시 실행하여 툴박스가 설치되어 있는지 확인합니다. 설치되어 있지 않은 경우, 이 함수를 사용하려면 이 툴박스를 다시 설치해야 합니다. 툴박스를 설치하는 방법에 대한 자세한 내용은 관련 솔루션 1-1CBD3, "How do I install additional toolboxes into my existing MATLAB"을 참조하십시오.

ver 함수가 툴박스를 표시하면 다음 명령을 실행하여 함수를 찾을 수 있는지 확인합니다.

which -all <functionname>

여기서 <functionname>을 해당 함수 이름으로 바꾸어야 합니다. 함수 파일의 경로가 표시되어야 합니다. 함수 이름을 찾을 수 없다는 메시지가 표시되는 경우 함수를 활성화하려면 해당 툴박스를 다시 설치해야 합니다.