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

linkdata

변수가 변경될 때 자동으로 그래프 업데이트

구문

linkdata on
linkdata off
linkdata
linkdata(figure_handle,...)
linkobj = linkdata(figure_handle)

설명

linkdata on은 현재 Figure에 대한 데이터 연결을 활성화합니다.

linkdata off는 데이터 연결을 비활성화합니다.

linkdata는 그 자체로 데이터 연결의 상태를 전환합니다.

linkdata(figure_handle,...)은 지정한 Figure 핸들에 이 함수를 적용합니다.

linkobj = linkdata(figure_handle)은 지정된 Figure에 대한 linkdata 객체를 반환합니다. 이 객체는 Figure의 연결된 상태에 따라 'on' 또는 'off'로 설정되는 하나의 읽기 전용 속성, Enable을 가집니다.

데이터 연결을 수행하면 XDataSource, YDataSource, ZDataSource 속성을 통해 Figure 창의 그래프가 기본 작업 공간 또는 함수의 작업 공간에 있는 변수에 연결됩니다. Figure에 대해 데이터 연결을 활성화하면 MATLAB®은 현재(기본 또는 함수 호출자) 작업 공간에 있는 변수를 영향을 받는 Figure에 포함된 그래프의 XData, YData, ZData 속성과 비교하여 일치하는 항목을 찾습니다. 일치하는 항목을 찾으면 그래프의 적절한 XDataSource, YDataSource 및/또는 ZDataSource가 일치하는 변수로 설정됩니다.

연결된 변수의 이후 모든 변경 내용은 이 변수를 데이터 소스로 사용하는 그래프에 반영되고, 연결된 변수가 변수 편집기에 표시되는 경우 변수 편집기에도 반영됩니다. 반대로, 명령줄, 변수 편집기, 브러싱 툴 중 하나를 사용하여 수행된, 플로팅된 데이터 값의 변경 내용(예: 데이터 점 삭제 또는 바꾸기)은 데이터 점에 연결된 작업 공간 변수에 즉시 반영됩니다.

그래프를 가진 Figure가 연결된 상태이고 XDataSource, YDataSource 및/또는 ZDataSource로 식별된 변수의 값이 작업 공간에서 변경되면 작업 공간에 Figure를 표시하는 모든 그래프와 기타 연결된 Figure가 자동으로 업데이트됩니다. 이 작업은 변수가 변경될 때 해당 Figure에 대해 refreshdata 함수를 자동으로 호출하는 것과 동일합니다.

연결된 Figure 창은 연결된 플롯 정보 표시줄이 창의 맨 위에 표시되어, 연결된 Figure 창임을 나타냅니다. Figure의 linkdataoff이면 연결된 플롯 정보 표시줄이 제거됩니다. linkdata는 연결된 Figure의 그래프에 대한 데이터 소스를 분명하게 식별하지 못할 경우 연결된 플롯 정보 표시줄을 통해 이를 보고합니다. 이를 통해 사용자가 데이터 소스를 식별할 수 있습니다. 정보 표시줄에는 경고 아이콘과 데이터 소스가 있는 그래픽스가 없습니다(No graphics have data sources) 메시지가 표시되고 수정(Fix) 프롬프트도 표시됩니다. 수정(Fix)을 클릭하면 변수 이름과 그래프에 사용된 데이터 소스의 범위를 식별할 수 있는 데이터 소스 속성 지정 대화 상자가 열립니다.

예제

예제 1

두 개의 변수를 만들고, 이러한 변수를 영역 차트로 플로팅한 다음, 플롯을 이 변수에 연결합니다.

x = 1:20;
y = rand(20,3);
area(x,y)
linkdata on

작업 공간에서 연결된 변수 y의 값을 변경합니다.

y(10,:) = 0;
영역 차트가 즉시 업데이트됩니다.

예제 2

반환된 linkdata 객체에 따라 Figure가 연결되지 않은 경우 이 Figure를 삭제합니다.

fig = figure;
ld = linkdata(fig)
ld = 
     graphics.linkdata

if strcmp(ld.Enable,'off')
    delete(fig)
end

예제 3

플로팅 함수가 복소 변수를 표시할 수 있으면 이러한 플롯을 연결할 수 있습니다. 이렇게 하려면 데이터 소스를 표현식으로 설명하여 변수의 실수부와 허수부를 분리해야 합니다. 예를 들면 다음과 같습니다.

x = eig(randn(20,20));
whos
  Name       Size      Bytes  Class     Attributes
  x         20x1         320  double    complex   
위 표현식은 복소수 벡터를 생성합니다. plot을 사용하여 실수부를 x로 표시하고 허수부를 y로 표시한 다음, 그래프를 변수에 연결할 수 있습니다.
plot(x)
linkdata
그러나 linkdata는 그래프의 데이터 소스를 분명하게 식별할 수 없으므로, 연결된 플롯 정보 표시줄에서 수정(Fix)을 클릭할 때 표시되는 데이터 소스 속성 지정 대화 상자에 real(x)imag(x)를 입력하여 직접 식별해야 합니다.

대화 상자에서 데이터 소스 이름을 입력할 필요가 없도록 하려면 플로팅할 때 이 이름을 지정할 수 있습니다.

plot(x,'XDataSource','real(x)','YDataSource','imag(x)')

이후에 프로그래밍 방식으로 또는 수동으로 x의 값을 변경하면 플롯이 이에 따라 업데이트됩니다.

참고

복소수 데이터의 연결된 플롯에서 데이터 브러싱을 사용할 수도 있지만, 브러싱 표시는 브러싱하는 플롯에만 표시되고 다른 플롯이나 변수 편집기에는 표시되지 않습니다. 이는 데이터 소스로 지정하는 real(x)imag(x) 등의 함수 호출이 그래프로 작성된 데이터를 브러싱할 때 해석되지 않기 때문입니다.

연결할 수 있는 변수 유형

linkdata를 사용하여 그래프를 임의 클래스의 스칼라, 벡터, 행렬 숫자형 변수(그래프 작성 함수가 플로팅할 수 있는 경우 complex 포함)와 연결할 수 있습니다. 기본적으로 isnumerictrue인 모든 데이터와 연결할 수 있습니다. 복소 변수를 연결하는 방법에 대한 지침은 예제 3 항목을 참조하십시오. 구조체 내의 숫자형 필드에 플롯을 연결할 수도 있습니다. MATLAB 표현식을 데이터 소스로 지정할 수 있습니다(예: sqrt(y)+1).

끊어진 연결 복원

XDataSource, YDataSource, ZDataSource 속성 중 하나의 변수를 실행할 때 현재 작업 공간에 있는 항목과 호환되지 않으면 연결된 플롯의 데이터를 새로 고치지 못하며, 해당하는 XData, YData 또는 ZData가 응답할 수 없습니다. 그래프에 있는 객체의 시각적 표시는 이로 인해 영향을 받지 않으므로, 그래픽 객체에는 연결이 끊어졌다는 표시가 나타나지 않습니다. 대신, 연결된 플롯 정보 표시줄에 경고 아이콘과 링크 연결 실패(Failing links) 메시지가 편집(Edit) 버튼과 함께 나타납니다. 이 버튼을 클릭하면 데이터 소스 지정 대화 상자가 열립니다.

빠르게 변경되는 데이터 연결

linkdata는 데이터의 업데이트를 버퍼링하고 약 0.5초 간격으로 업데이트를 플롯에 디스패치합니다. 따라서 1초마다 또는 더 짧은 기간에 두 번 실행되도록 강제 설정된 루프에서 데이터 값이 업데이트되지 않을 경우 데이터 값의 변경 사항을 매끄럽게 애니메이션하는 데 데이터 연결이 적합하지 않을 수 있습니다.

링크 업데이트를 버퍼링할 경우 linkdata가 모니터링하는 데이터 스트림의 변경 내용을 감지하지 못할 수도 있습니다. 작업 공간 변수를 업데이트하기 위해 assignin 또는 evalin을 사용하는 함수를 실행할 경우 linkdata가 때때로 작업 공간 변수의 크기와 클래스가 아닌, 값을 변경하는 업데이트를 처리하지 못할 수 있습니다. 이러한 오류는 함수 자체가 플롯을 업데이트할 때만 발생합니다.

브러싱된 그래프 연결

데이터 소스를 브러싱된 그래프에 연결할 경우 브러싱 표시가 변경되거나 사라질 수 있습니다. 이는 이러한 그래프의 작업 공간 변수가 이제 어떤 관측값이 브러싱될지(있는 경우)를 지정하여, 해당 그래픽 데이터(YData 등)에 적용된 브러싱 주석을 대체하기 때문입니다. 자세한 내용은 brush 함수 도움말 페이지의 데이터 연결이 데이터 브러싱에 미치는 영향 항목을 참조하십시오.