그래픽스 배열
그래픽스 배열에는 임의 그래픽스 객체의 핸들이 포함될 수 있습니다. 예를 들어, 다음과 같은 plot
함수에 대한 호출은 line 객체 핸들을 5개 포함하는 배열을 반환합니다.
y = rand(20,5); h = plot(y)
h = 5x1 Line array: Line Line Line Line Line
이 배열은 line 객체에 대한 핸들만 포함합니다. 하지만, 그래픽스 배열에는 둘 이상의 그래픽스 객체 유형이 포함될 수 있습니다. 즉, 그래픽스 배열은 이종 배열일 수 있습니다.
예를 들어, Figure, axes 및 line 객체의 핸들을 하나의 배열 harray
로 결합(Concatenate)할 수 있습니다.
hf = figure; ha = axes; hl = plot(1:10); harray = [hf,ha,hl]
harray = 1x3 graphics array: Figure Axes Line
그래픽스 배열은 모든 MATLAB® 배열과 동일한 규칙을 따릅니다. 예를 들어, 배열 요소 차원은 일치해야 합니다. 다음 코드에서 플롯은 5×1 선 배열을 반환합니다.
hf = figure;
ha = axes;
hl = plot(rand(5));
harray = [hf,ha,hl];
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
배열을 형성하려면 다음과 같이 hl
을 전치해야 합니다.
harray = [hf,ha,hl']
harray = 1x7 graphics array: Figure Axes Line Line Line Line Line
숫자형 데이터는 객체 핸들과 결합(Concatenate)할 수 없습니다. 단, Figure의 Number
속성으로 지정되는 고유 식별자는 예외입니다. 예를 들어, Number
속성이 1로 설정된 기존 Figure가 있는 경우 이 숫자로 해당 Figure를 참조할 수 있습니다.
figure(1) aHandle = axes; [aHandle,1]
ans = 1x2 graphics array: Axes Figure
배열 형성에 대한 동일한 규칙이 인덱스 참조 값 할당에도 적용됩니다. 예를 들어, 다음과 같이 for
루프를 사용하여 핸들 배열을 빌드할 수 있습니다.
harray = gobjects(1,7); hf = figure; ha = axes; hl = plot(rand(5)); harray(1) = hf; harray(2) = ha; for k = 1:length(hl) harray(k+2) = hl(k); end