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

객체 인덱스로 사용되는 end

객체에 대한 end 인덱싱 정의하기

객체 인덱싱 표현식에 end를 사용하면(예: A(4:end)) end 함수가 해당 차원의 마지막 요소에 해당하는 인덱스 값을 반환합니다.

클래스는 end 함수를 오버로드하여 특화된 동작을 구현할 수 있습니다. 클래스가 end 메서드를 정의하면 MATLAB®은 그 메서드를 호출하여 표현식 해석 방법을 결정합니다.

end 메서드의 호출하는 구문은 다음과 같습니다.

ind = end(A,k,n)

인수에 대한 설명은 다음과 같습니다.

  • A는 객체임

  • kend 구문을 사용한 표현식의 인덱스임

  • n은 표현식에 포함된 인덱스의 총 개수임

  • ind는 표현식에 사용할 인덱스 값임

예를 들어, 3x5 배열 A를 살펴보겠습니다. MATLAB이 다음과 같은 표현식을 만나면

A(end-1,:)

MATLAB이 다음과 같이 인수를 사용하여 객체 A에 대해 정의된 end 메서드를 호출합니다.

ind = end(A,1,2)

이 인수는 end 문이 첫 번째 인덱스에서 발생하고 두 개의 인덱스가 있음을 의미합니다. end 클래스 메서드는 첫 번째 차원의 마지막 요소에 대한 인덱스 값을 반환합니다(이 경우 마지막 요소에서 1을 뺀 값임). 원래 표현식은 다음과 같이 실행됩니다.

A(3-1,:)

클래스에 end 메서드를 구현하는 경우 해당 클래스에 적합한 값이 확실히 반환되도록 하십시오.

end 메서드

MyDataClass 예제에 대한 end 메서드(Class with Modified Indexing 참조)는 Data 속성의 내용에 대한 연산을 수행합니다. 이 메서드의 목적은 다음과 같은 인덱싱 표현식에서 end를 대신하는 값을 반환하는 것입니다.

obj(4:end)
obj.Data(2,3:end)

아래 end 메서드는 end에 대한 양의 정수 값을 결정합니다. 이 메서드는 값을 반환하여 MATLAB이 인덱싱 표현식에 그 값을 사용할 수 있도록 합니다.

function ind = end(obj,k,n)
   szd = size(obj.Data);
   if k < n
      ind = szd(k);
   else
      ind = prod(szd(k:end));
   end
end

관련 항목