MATLAB에서 객체 사용하기
일부 MATLAB® 함수는 객체를 반환합니다. 객체는 데이터(속성)를 함수 및 메서드와 결합합니다. 객체 속성에는 데이터(예: 숫자나 텍스트 같은 단순 유형) 또는 기타 객체가 포함되어 있습니다. 함수와 메서드는 객체 자체에 대해 동작을 수행합니다. 예를 들어, 이러한 함수는 객체 속성에 대해 동작하거나 객체의 상태를 변경할 수 있습니다.
객체 생성하기
객체를 생성할 때 이 객체에 변수를 할당할 수 있습니다. 이 변수는 객체의 속성 및 메서드에 대한 액세스를 제공합니다. 예를 들어, 다음의 histogram
함수 구문은 x
의 데이터 히스토그램을 표시할 뿐 아니라 객체를 출력값 h
로 반환합니다.
h = histogram(x)
1000개의 난수를 표시하는 histogram 객체를 만듭니다. 출력 인수와 함께 histogram
을 호출하면 그래프, 객체(Histogram
)의 유형이나 클래스, 객체 속성과 해당 값의 일부 목록이 표시됩니다.
x = randn(1000,1); h = histogram(x)
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 객체는 객체의 차원과 유형을 포함하여 다른 활성 변수와 함께 나열됩니다.
객체 속성 가져오기 및 설정하기
객체 속성에는 데이터가 포함되어 있습니다. 속성값을 변경하여 객체의 특성을 수정할 수 있습니다. 객체에 할당된 변수에 점 표기법을 사용하여 해당 속성에 액세스하고 변경할 수 있습니다.
histogram 객체의 경우 속성은 원시 데이터, Bin 개수, 각 막대의 높이 및 히스토그램의 모양을 제어하는 기타 정보를 포함합니다. 예를 들어, Orientation
은 막대가 가로로 표시되는지 아니면 세로로 표시되는지를 결정하는 histogram 객체의 속성입니다. 객체의 이름(h
), 점, 속성 이름을 입력하여 속성의 값에 액세스할 수 있습니다.
h.Orientation
ans = 'vertical'
동일한 구문을 사용하지만 등호와 새 값을 추가하여 속성의 값을 변경할 수 있습니다.
h.Orientation = "horizontal"
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 개수를 늘리고 줄이는 함수 morebins
및 fewerbins
가 포함되어 있습니다. NumBins
속성에 액세스하여 현재 히스토그램에 몇 개의 Bin이 있는지 확인합니다.
h.NumBins
ans = 23
morebins
를 호출하여 히스토그램 h
의 Bin 개수를 늘립니다. morebins
함수가 Bin 개수를 약 10% 증가시켜 Bin 개수는 23개에서 26개로 늘어납니다.
morebins(h)
ans = 26
다른 객체 지향 프로그래밍 언어는 메서드를 호출하기 위해 점 표기법을 자주 사용합니다(예: h.morebins
). 이 구문은 MATLAB의 메서드에도 지원됩니다. 그러나 샘플 코드의 일관성을 위해 문서에서는 객체 입력값을 받는 대부분의 메서드 및 함수에 대해 함수 형식을 사용합니다.
morebins
함수에는 추가 입력 인수가 없지만 이 점이 객체를 받는 모든 함수에 해당되는 것은 아닙니다. 객체 자체 외에도 객체 함수에는 표준 함수 구문을 사용하여 함수에 전달할 수 있는 추가 입력 인수가 있을 수 있습니다. 예를 들어, 다음 구문을 사용하여 두 개의 입력 인수를 받는 객체 함수를 호출할 수 있습니다.
functionName(objectVariable,arg1,arg2)
자신만의 고유한 클래스 기반 객체 정의하기
MATLAB 언어에서 제공되는 객체 외에도 객체 지향 프로그래밍 기법을 사용하여 자신만의 고유한 클래스 기반 객체를 정의할 수 있습니다. 언어는 표준 OO 규칙을 따릅니다. 자세한 내용은 간단한 클래스 생성하기 항목으로 시작하십시오.