Автоматически обновите графики, когда переменные изменятся
linkdata on
linkdata off
linkdata
linkdata(figure_handle,...)
linkobj = linkdata(figure_handle)
linkdata on
включает данные, соединяющиеся для текущей фигуры.
linkdata off
выключает соединение данных.
linkdata
отдельно переключает состояние соединения данных.
linkdata(figure_handle,...)
применяет функцию к заданному указателю фигуры.
linkobj = linkdata(figure_handle)
возвращает linkdata object для заданной фигуры. Объект имеет одно свойство только для чтения, Enable
, который установлен или в 'on'
или в 'off'
, в зависимости от соединенного состояния фигуры.
Данные, соединяющие графики подключений в окнах рисунка к переменным в основе или рабочей области функции через их XDataSource
, YDataSource
и свойства ZDataSource
. Когда вы включаете данные, соединяющиеся для фигуры, MATLAB® сравнивает переменные в токе (основная или функциональная вызывающая сторона) рабочая область с XData
, YData
и свойствами ZData
графиков в затронутой фигуре, чтобы попытаться совпадать с ними. Когда соответствие найдено, соответствующий XDataSource
, YDataSource
и/или ZDataSource
для графика установлены в соответствующие переменные.
Любые последующие изменения к соединенным переменным отражаются в графиках, которые используют их в качестве источников данных и в редакторе Переменных, если соединенные переменные отображены там. С другой стороны любые изменения в нанесенных на график значениях данных, сделанных в командной строке, в редакторе Переменных, или с Кистью (таких как удаление или заменяющий точки данных), сразу отражаются в переменных рабочей области, соединенных с точками данных.
Когда фигура, содержащая графики, соединяется, и любая переменная идентифицирована как XDataSource
, YDataSource
, и/или ZDataSource
изменяет свои значения в рабочей области, все графики, отображающие его в этом и других соединенных фигурах автоматически, обновляют. Эта операция эквивалентна автоматическому вызыванию функции refreshdata
на соответствующем показателе, когда переменная изменяется.
Соединенные окна рисунка идентифицируют себя внешним видом Соединенной панели информации о Графике наверху окна. Когда linkdata
является off
для фигуры, Соединенная панель информации о Графике удалена. Если linkdata
не может однозначно идентифицировать источники данных для графика в соединенной фигуре, он сообщает об этом через Соединенную панель информации о Графике, которая дает пользователю возможность идентифицировать источники данных. Информационная панель отображает значок предупреждения и сообщение, No graphics have data sources и также запрашивает fix it. Нажатие на fix it открывает диалоговое окно Specify Data Source Properties для идентификации имен переменных и областей значений источников данных, используемых в графике.
Создайте две переменные, постройте их как диаграммы областей и соедините график с ними:
x = 1:20; y = rand(20,3); area(x,y) linkdata on
Измените значения для соединенной переменной y
в рабочей области:
y(10,:) = 0;
Удалите фигуру, если это не соединяется, на основе возвращенного объекта linkdata
:
fig = figure; ld = linkdata(fig)
ld = graphics.linkdata
if strcmp(ld.Enable,'off') delete(fig) end
Если функция построения графика может отобразить комплексную переменную, то можно соединить такие графики. Для этого необходимо описать источники данных как выражения, чтобы разделить действительные и мнимые части переменной. Например,
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, которое отображается, когда вы нажимаете fix it в Соединенной панели информации о Графике.
Чтобы избежать необходимости вводить имена источников данных в диалоговом окне, можно задать их, когда вы строите:
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
не могут ответить. Общий вид объекта в графике не затронут такими отказами, таким образом, графические объекты не показывают индикации относительно неработающих ссылок. Вместо этого значок предупреждения и сообщение, Failing links появляется на Соединенной панели информации о Графике наряду с кнопкой Edit, которая открывает диалоговое окно Specify Data Sources.
linkdata
буферизует обновления данных и отправляет их графикам примерно в полувторых интервалах. Это делает данные, соединяющиеся не подходящими для того, чтобы гладко анимировать изменения в значениях данных, если они не обновляются в циклах, которые обеспечены, чтобы выполниться два раза в секунду или меньше.
Одно последствие буферизации обновлений ссылки - то, что linkdata
не может обнаружить изменения в потоках данных, которые это контролирует. Если при запуске функцию, которая использует assignin
или evalin
, чтобы обновить переменные рабочей области, linkdata
иногда может не обработать обновления, которые изменяют значения, но не размер и класс переменных рабочей области. Такие отказы только происходят, когда сама функция обновляет график.
Если вы соединяете источники данных с графиками, которые нарисовали кистью, их метки окрашивания могут измениться или исчезнуть. Это вызвано тем, что переменные рабочей области в тех графиках теперь диктуют, который, если таковые имеются, наблюдения рисуют кистью, заменяя любые аннотации окрашивания, которые были применены к их графическим данным (YData
, и т.д.). Для получения дополнительной информации смотрите, Как Данные, Соединяющиеся, Влияют на Окрашивание данных на странице с описанием brush
.
brush
| linkaxes
| linkprop
| refreshdata