이전에 MATLAB 6.5 만 사용했습니다. '@'를 사용하는 프로그램이 있습니다. 누군가 그게 뭔지 말해 줄 수 있어요?MATLAB에서 @ 연산자 란 무엇입니까?
그런데 MATLAB 6.5가이 연산자를 지원합니까?
이전에 MATLAB 6.5 만 사용했습니다. '@'를 사용하는 프로그램이 있습니다. 누군가 그게 뭔지 말해 줄 수 있어요?MATLAB에서 @ 연산자 란 무엇입니까?
그런데 MATLAB 6.5가이 연산자를 지원합니까?
@ 연산자는 함수 핸들을 만듭니다.이 함수 핸들을 사용하면 변수와 같은 함수 호출을 쉽게 만들고 전달할 수 있습니다. 불행히도 당신에게 유용한 기능은 많지 않습니다. 왜냐하면 당신이 용의자로, 그것은 버전 7까지 matlab에 도입되지 않았기 때문에, 당신의 직후 릴리스.
설명서에 따르면 function handle이라고되어 있습니다.
이것은 Matlab에서 Anonymous Functions을 선언하는 데 사용됩니다.
나는이 용어가 "Function Handle"이라고 생각한다.
실질적으로 M 파일의 어느 위치에서든 Matlab이 함수를 선언 할 수 없다는 사실을 다룹니다.
당신은 여기에서 볼 수 있습니다 What is your favourite MATLAB/Octave programming trick?
내가는 "blockproc"명령과 함께 이미지 처리에 유용하다는 것을 발견했다.
function_handle (@) 구문 indirectlyexpand 모든 페이지 에 핸들 = @functionname 핸들 = @ (아글리스트) anonymous_function
설명
핸들 = @functionname 반환 함수를 호출에 사용
핸들 지정된 MATLAB® 함수의 핸들.
함수 핸들은 함수를 간접적으로 호출하는 방법을 제공하는 MATLAB 값입니다. 다른 함수 (종종 함수 함수라고 함)에 대한 호출에서 함수 핸들을 전달할 수 있습니다. 나중에 사용할 수 있도록 데이터 구조에 함수 핸들을 저장할 수도 있습니다 (예 : 핸들 그래픽 콜백). 함수 핸들은 표준 MATLAB 데이터 유형 중 하나입니다.
함수 핸들을 만들 때 지정한 함수는 MATLAB 경로와 핸들을 만드는 코드의 현재 범위에 있어야합니다. 예를 들어, 로컬 함수를 정의하는 파일 내에서 수행하는 한 로컬 함수에 대한 핸들을 작성할 수 있습니다. 이 조건은 함수 핸들을 평가할 때 적용되지 않습니다. 예를 들어 함수 핸들을 사용하여 별도의 (범위를 벗어난) 파일에서 로컬 함수를 실행할 수 있습니다. 이를 위해서는 핸들이 로컬 함수 (범위 내)에 의해 작성되어야합니다.
handle = @ (arglist) anonymous_function은 익명의 함수를 생성하고 해당 함수에 대한 핸들을 반환합니다. 괄호 오른쪽에있는 함수의 본문은 단일 MATLAB 문 또는 명령입니다. arglist는 쉼표로 구분 된 입력 인수 목록입니다. 함수 handle, handle을 사용하여 함수를 호출하여 함수를 실행합니다.
예
예 1 - 명명 된 기능 다음 예 핸들을 구성하는 돌기가 기능하는 기능 핸들을 생성하여 변수 fhandle에 할당.
fhandle = @humps; 인수를 전달하는 것과 같은 방법으로 핸들을 다른 함수에 전달하십시오. 이 예제는 방금 생성 된 함수 핸들을 fminbnd로 전달한 다음 [0.3, 1] 간격 동안 최소화합니다.
X = fminbnd (fhandle, 0.3, 1) = X 0.6370 fminbnd 함수는 함수 @humps 핸들을 평가한다. fminbnd 파일의 작은 부분이 아래에 나와 있습니다. 1 행에서 funfcn 입력 매개 변수는 전달 된 함수 핸들 @humps를 수신합니다. 행 113의 명령문은 핸들을 평가합니다.
1 함수 [xf, fval, exitflag, 출력] = ... fminbnd (funfcn, ax, bx, 옵션, varargin) . . . 113 fx = funfcn (x, varargin {:});
업데이트 된 링크는 그냥 복사하는 것보다 낫다고 생각합니다. 최소한 "모두 확장 ...", "구문"등을 삭제하고 더 읽기 쉽도록 페이지에 정렬 할 수 있습니다. – Adiel
실제로 '핸들'이있는 그래픽 객체와 유사한 명명 규칙을 사용하여 함수 핸들 (핸들러가 아닙니다)이라고합니다. – MatlabDoug
고쳐 주셔서 감사합니다. – Royi