Main Content

MATLAB에서 객체 사용하기

일부 MATLAB® 함수는 객체를 반환합니다. 객체는 데이터(속성)를 함수 및 메서드와 결합합니다. 객체 속성에는 데이터(예: 숫자나 텍스트 같은 단순 유형) 또는 기타 객체가 포함되어 있습니다. 함수와 메서드는 객체 자체에 대해 동작을 수행합니다. 예를 들어, 이러한 함수는 객체 속성에 대해 동작하거나 객체의 상태를 변경할 수 있습니다.

객체 생성하기

객체를 생성할 때 이 객체에 변수를 할당할 수 있습니다. 이 변수는 객체의 속성 및 메서드에 대한 액세스를 제공합니다. 예를 들어, 다음의 histogram 함수 구문은 x의 데이터 히스토그램을 표시할 뿐 아니라 객체를 출력값 h로 반환합니다.

h = histogram(x)

1000개의 난수를 표시하는 histogram 객체를 만듭니다. 출력 인수와 함께 histogram을 호출하면 그래프, 객체(Histogram)의 유형이나 클래스, 객체 속성과 해당 값의 일부 목록이 표시됩니다.

x = randn(1000,1);
h = histogram(x)

Figure contains an axes object. The axes object contains an object of type histogram.

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 16 6 6 4 1 2]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

작업 공간에서 histogram 객체는 객체의 차원과 유형을 포함하여 다른 활성 변수와 함께 나열됩니다.

object_in_Workspace.jpg

객체 속성 가져오기 및 설정하기

객체 속성에는 데이터가 포함되어 있습니다. 속성값을 변경하여 객체의 특성을 수정할 수 있습니다. 객체에 할당된 변수에 점 표기법을 사용하여 해당 속성에 액세스하고 변경할 수 있습니다.

histogram 객체의 경우 속성은 원시 데이터, Bin 개수, 각 막대의 높이 및 히스토그램의 모양을 제어하는 기타 정보를 포함합니다. 예를 들어, Orientation은 막대가 가로로 표시되는지 아니면 세로로 표시되는지를 결정하는 histogram 객체의 속성입니다. 객체의 이름(h), 점, 속성 이름을 입력하여 속성의 값에 액세스할 수 있습니다.

h.Orientation
ans = 
'vertical'

동일한 구문을 사용하지만 등호와 새 값을 추가하여 속성의 값을 변경할 수 있습니다.

h.Orientation = "horizontal"

Figure contains an axes object. The axes object contains an object of type histogram.

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 16 6 6 4 1 2]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

모든 객체 속성이 쓰기 가능한 것은 아닙니다. 속성은 읽기 전용일 수 있습니다. 즉, 읽을 수는 있지만 속성에 새 값을 할당하려고 하면 오류가 반환됩니다. 예를 들어, 히스토그램의 Values 속성은 각 막대의 높이를 저장하고 객체가 생성될 때 계산됩니다. 이는 읽기 전용 속성이므로 Values를 직접 변경할 수 없습니다.

객체를 받는 함수

일부 함수는 객체에 대해 동작을 수행하도록 설계되었습니다. 이러한 함수는 객체의 특정 클래스에 대해 특별히 정의된 메서드일 수도 있고 그 객체를 일반 입력 인수로 받는 함수일 수도 있습니다. 어느 경우이든 객체에 대한 변수를 입력값으로 사용할 수 있습니다. 예를 들어, Histogram 객체에는 각각 히스토그램 Bin 개수를 늘리고 줄이는 함수 morebinsfewerbins가 포함되어 있습니다. NumBins 속성에 액세스하여 현재 히스토그램에 몇 개의 Bin이 있는지 확인합니다.

h.NumBins
ans = 23

morebins를 호출하여 히스토그램 h의 Bin 개수를 늘립니다. morebins 함수가 Bin 개수를 약 10% 증가시켜 Bin 개수는 23개에서 26개로 늘어납니다.

morebins(h)

Figure contains an axes object. The axes object contains an object of type histogram.

ans = 26

다른 객체 지향 프로그래밍 언어는 메서드를 호출하기 위해 점 표기법을 자주 사용합니다(예: h.morebins). 이 구문은 MATLAB의 메서드에도 지원됩니다. 그러나 샘플 코드의 일관성을 위해 문서에서는 객체 입력값을 받는 대부분의 메서드 및 함수에 대해 함수 형식을 사용합니다.

morebins 함수에는 추가 입력 인수가 없지만 이 점이 객체를 받는 모든 함수에 해당되는 것은 아닙니다. 객체 자체 외에도 객체 함수에는 표준 함수 구문을 사용하여 함수에 전달할 수 있는 추가 입력 인수가 있을 수 있습니다. 예를 들어, 다음 구문을 사용하여 두 개의 입력 인수를 받는 객체 함수를 호출할 수 있습니다.

functionName(objectVariable,arg1,arg2)

자신만의 고유한 클래스 기반 객체 정의하기

MATLAB 언어에서 제공되는 객체 외에도 객체 지향 프로그래밍 기법을 사용하여 자신만의 고유한 클래스 기반 객체를 정의할 수 있습니다. 언어는 표준 OO 규칙을 따릅니다. 자세한 내용은 간단한 클래스 생성하기 항목으로 시작하십시오.

참고 항목

|