이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
객체 배열 생성하기
생성자에서 배열 만들기
클래스 생성자는 배열을 만들고 출력 인수로 반환하는 방법으로 배열을 생성할 수 있습니다.
예를 들어, ObjectArray
클래스는 입력 배열과 동일한 크기의 객체 배열을 생성합니다. 그런 다음 각 객체의 Value
속성을 이에 대응하는 입력 배열 값으로 초기화합니다.
classdef ObjectArray properties Value end methods function obj = ObjectArray(F) if nargin ~= 0 m = size(F,1); n = size(F,2); obj(m,n) = obj; for i = 1:m for j = 1:n obj(i,j).Value = F(i,j); end end end end end end
객체 배열을 사전할당하려면 먼저 배열의 마지막 요소에 값을 할당해야 합니다. 그러면 MATLAB®이 ObjectArray
객체를 사용하여 첫 번째 요소부터 끝에서 두 번째 요소까지 값을 채웁니다.
배열을 사전할당한 후에는 각 객체의 Value
속성을 입력 배열 F
에서 대응하는 값에 할당합니다. 클래스를 사용하려면 다음을 수행하십시오.
마방진 수로 구성된 5×5 배열 생성
5×5 객체 배열 생성
F = magic(5); A = ObjectArray(F); whos
Name Size Bytes Class Attributes A 5x5 304 ObjectArray F 5x5 200 double
객체 배열에서 속성값 참조하기
각 객체에 속성 PropName
이 있는 객체 배열 objArray
가 있다고 가정할 경우 다음을 수행할 수 있습니다.
배열 인덱싱을 사용하여 특정 객체의 속성값을 참조할 수 있습니다.
objArray(ix).PropName
점 표기법을 사용하여 객체 배열에서 동일한 속성의 값을 모두 참조할 수 있습니다. 그러면 MATLAB이 쉼표로 구분된 속성값 목록을 반환합니다.
objArray.PropName
쉼표로 구분된 목록을 하나의 변수에 할당하려면 우변 표현식을 대괄호로 묶어야 합니다.
values = [objArray.PropName]
예를 들어, 다음과 같이 ObjProp
클래스가 주어진 경우를 살펴보겠습니다.
classdef ObjProp properties RegProp end methods function obj = ObjProp obj.RegProp = randi(100); end end end
ObjProp
객체로 구성된 배열을 생성합니다.
for k = 1:5 objArray(k) = ObjProp; end
배열 인덱싱을 사용하여 객체 배열의 두 번째 요소에 대한 RegProp
속성에 액세스합니다.
objArray(2).RegProp
ans = 91
모든 RegProp
속성의 값을 숫자형 배열에 할당합니다.
propValues = [objArray.RegProp]
propValues = 82 91 13 92 64
표준 인덱싱 연산을 사용하여 숫자형 배열의 값에 액세스할 수 있습니다. 숫자형 배열에 대한 자세한 내용은 행렬과 배열 항목을 참조하십시오.