2009-11-08 2 views

답변

17

This page

스크립트 MATLAB을 문을 포함 m-파일입니다 기능 대

스크립트 말했다. MATLAB의``functions ''는 입니다. 또 다른 유형의 m- 파일입니다. 스크립트와 함수의 차이는 이고 함수에는 입력과 출력 매개 변수가 있습니다. 스크립트 파일 은 이 m- 파일에 하드 코딩 된 변수에서만 작동 할 수 있습니다. 으로 볼 수 있습니다. 더 많은 기능이 있습니다. flexible. 그러므로 그들은 다른 데이터에 적용될 일반적인 목적의 작업 인 에 더 적합한 입니다.

스크립트는 변경되지 않는 작업에 유용합니다. 또한 동작의 특정 시퀀스를 문서화하는 방법입니다. 특수 매개 변수 값이있는 함수 호출은 기억하기가 어려우며 수 있습니다.

스크립트와 기능 간에는 더 많은 차이가 있습니다. 스크립트는 을 키보드 매크로로 생각할 수 있습니다. 스크립트의 이름을 입력하면 명령을 명령 창에 입력 한 것과 마찬가지로 명령에 포함 된 모든 명령이 처럼 실행됩니다. 따라서 스크립트에서 생성 된 모든 변수가 현재 세션 의 작업 영역에 추가됩니다. 또한 스크립트의 변수 중 하나 인 파일이 현재 작업 공간 에있는 것과 동일한 이름 인 경우 의 값은 스크립트의 작업에 따라 으로 변경됩니다. 이점을 누릴 수 있습니다. 그것도 원치 않는 부작용이 발생할 수 있습니다.

반면에 함수 변수는 해당 함수의 로컬 인 입니다. (예외 은 선언하는 것이 가능하고 글로벌 변수를 사용하지만 이 필요하며 사용자가 명시 적으로 행동한다는 것입니다.) 변수는 당신에게 더 큰 보안 및 유연성을 제공 함수의 로컬 범위. 외에도 명시 적으로 전역 변수로 선언 된 함수는 함수에 대한 정보를 얻는 유일한 방법은 매개 변수 목록의 변수 을 통과하는 것입니다.

예 스크립트 및 기능 사이의 주요 차이점

하나는 작업 공간 변수에 액세스한다. 예를 들어, 작업 공간에서 두 개의 변수 a = 10b = 20을 정의했다고 가정합니다. 이러한 변수는 주 프롬프트의 명령 줄에서 정의됩니다.

스크립트 파일 - display_mult.m

disp(a*b);

작업 영역에 10*20 또는 200, 즉 ab의 생성물을 표시 할 display_mult 타이핑.

하지만 함수를 정의하는 경우, 전화 display_mult는 같은 이름의 파일에 정의 :

기능 파일 - display_mult.m

function display_mult(a,b) 
    disp(a*b); 
end 

당신은 두 가지를 포함해야 변수를 함수 호출의 인수로 사용합니다. 따라서 ab이 함수의 작업 영역에 없기 때문에 display_mult이 아니며 이번에는이 작동하지 않습니다. 원하는 결과를 표시 할 display_mult(a,b)을 실행하여 포함시켜야합니다.

간단한 설명

스크립트의 각 문은 MATLAB의 명령 창에서 그들을 입력하는 것과 동일합니다. 파일을 미리 보관 해 두는 것뿐입니다!

함수는 인수를 취하며 주 작업 영역과는 별도로 "새로운"작업 영역입니다.

참고 : 함수 호출 마지막에있는 end은 선택 사항이지만 항목을 체계화하기 위해 추가하려고합니다. 물론 파일에 여러 함수 정의가있는 경우 모두 end으로 끝나야합니다. 또한 동일한 파일에서 스크립트와 함수 정의를 가질 수 없습니다.

+0

예를 들어? 몇 가지 예를 들어 주시겠습니까? – izzat

+0

예제를 추가하고 솔루션에 확장 – Jacob

관련 문제