linkdata

Автоматически обновите графики, когда переменные изменятся

Синтаксис

linkdata на
linkdata прочь
linkdata
linkdata (figure_handle...)
linkobj = linkdata (figure_handle)

Описание

linkdata on включает данные, соединяющиеся для текущей фигуры.

linkdata off выключает соединение данных.

linkdata отдельно переключает состояние соединения данных.

linkdata(figure_handle,...) применяет функцию к заданному указателю фигуры.

linkobj = linkdata(figure_handle) возвращает объект linkdata для заданной фигуры. Объект имеет одно свойство только для чтения, Enable, который установлен или в 'on' или в 'off', в зависимости от соединенного состояния фигуры.

Данные, соединяющие графики подключений в окнах фигуры к переменным в основе или рабочей области функции через их XDataSource, YDataSource и свойства ZDataSource. Когда вы включаете данные, соединяющиеся для фигуры, MATLAB® сравнивает переменные в токе (основная или функциональная вызывающая сторона) рабочая область с XData, YData и свойствами ZData графиков в затронутой фигуре, чтобы попытаться совпадать с ними. Когда соответствие найдено, соответствующий XDataSource, YDataSource и/или ZDataSource для графика установлены в соответствующие переменные.

Любые последующие изменения к соединенным переменным отражаются в графиках, которые используют их в качестве источников данных и в редакторе Переменных, если соединенные переменные отображены там. С другой стороны любые изменения в нанесенных на график значениях данных, сделанных в командной строке, в редакторе Переменных, или с Кистью (таких как удаление или заменяющий точки данных), сразу отражаются в переменных рабочей области, соединенных с точками данных.

Когда фигура, содержащая графики, соединяется, и любая переменная идентифицирована как XDataSource, YDataSource, и/или ZDataSource изменяет свои значения в рабочей области, все графики, отображающие его в этом и других соединенных фигурах автоматически, обновляют. Эта операция эквивалентна автоматическому вызыванию функции refreshdata на соответствующем показателе, когда переменная изменяется.

Соединенные окна фигуры идентифицируют себя внешним видом Соединенной панели информации о Графике наверху окна. Когда linkdata является off для фигуры, Соединенная панель информации о Графике удалена. Если linkdata не может однозначно идентифицировать источники данных для графика в соединенной фигуре, он сообщает об этом через Соединенную панель информации о Графике, которая дает пользователю возможность идентифицировать источники данных. Информационная панель отображает значок предупреждения и сообщение, Никакая графика не имеет источники данных, и также запрашивает, фиксируют его. Нажатие фиксирует его, открывает диалоговое окно Specify Data Source Properties для идентификации имен переменных и областей значений источников данных, используемых в графике.

Примеры

Пример 1

Создайте две переменные, постройте график их как диаграмм областей и соедините график с ними:

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

Измените значения для соединенного переменного y в рабочей области:

y(10,:) = 0;
Диаграмма областей сразу обновляет.

Пример 2

Удалите фигуру, если это не соединяется, на основе возвращенного объекта linkdata:

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 не может однозначно идентифицировать источники данных графика, и необходимо сказать его путем ввода real(x) и imag(x) в диалоговое окно Specify Data Source Properties, которое отображается, когда вы щелкаете, фиксируют его в Соединенной панели информации о Графике.

Чтобы избежать необходимости вводить имена источников данных в диалоговом окне, можно задать их, когда вы строите график:

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

Если вы впоследствии изменяете значения x программно или вручную, график обновляет соответственно.

Примечание

Несмотря на то, что можно использовать окрашивание данных на соединенных графиках комплексных данных, следы от кисти только появляются в графике, который вы рисуете кистью, не в других графиках или в редакторе Переменных. Это вызвано тем, что вызовы функции, такие как real(x) и imag(x), который вы задаете как источники данных, не интерпретированы, когда окрашивание изобразило данные в виде графика.

Советы

Типы переменных можно соединиться

Можно использовать linkdata, чтобы соединить график со скаляром, векторными и матричными числовыми переменными любого класса (включая complex, если функция построения графика может построить график его) — по существу любые данные, для которых isnumeric равняется true. Смотрите Пример 3 для получения инструкций относительно соединения комплексных переменных. Можно также соединить графики с числовыми полями в структурах. Можно задать выражения MATLAB как источники данных, например, sqrt(y)+1.

Восстановление Ссылок тот Пропуск

Обновляющие данные по соединенному графику перестали работать, если переменные в XDataSource, YDataSource, или свойствах ZDataSource, когда оценено, несовместимы с тем, что находится в текущей рабочей области, такой, что соответствующий XData, YData или ZData не могут ответить. Общий вид объекта в графике не затронут такими отказами, таким образом, графические объекты не показывают индикации относительно неработающих ссылок. Вместо этого значок предупреждения и сообщение, Приводя ссылки к сбою появляются на Соединенной панели информации о Графике наряду с кнопкой Edit, которая открывает диалоговое окно Specify Data Sources.

Соединение быстро изменяющихся данных

linkdata буферизует обновления данных и отправляет их графикам в примерно полувторых интервалах. Это делает данные, соединяющиеся не подходящими для того, чтобы гладко анимировать изменения в значениях данных, если они не обновляются в циклах, которые обеспечены, чтобы выполниться два раза в секунду или меньше.

Одно последствие буферизации обновлений ссылки - то, что linkdata не может обнаружить изменения в потоках данных, которые это контролирует. Если при запуске функцию, которая использует assignin или evalin, чтобы обновить переменные рабочей области, linkdata иногда может не обработать обновления, которые изменяют значения, но не размер и класс переменных рабочей области. Такие отказы только происходят, когда сама функция обновляет график.

Соединение нарисованных кистью графиков

Если вы соединяете источники данных с графиками, которые нарисовали кистью, их метки окрашивания могут измениться или исчезнуть. Это вызвано тем, что переменные рабочей области в тех графиках теперь диктуют, который, если таковые имеются, наблюдения рисуют кистью, заменяя любые аннотации окрашивания, которые были применены к их графическим данным (YData, и т.д.). Для получения дополнительной информации смотрите, Как Данные, Соединяющиеся, Влияют на Окрашивание данных на странице с описанием brush.

Была ли эта тема полезной?