Когда вы строите график данных из переменных рабочей области, графики содержат копии переменных. В результате при изменении переменной рабочей области (такой как добавление или удаление данных) графики не обновляются автоматически. Если вы хотите, чтобы график отражал изменение, необходимо скопировать его. Однако можно использовать один из этих методов, чтобы связать графики с переменными рабочей области, которые они представляют. Когда вы связываете графики и переменные рабочей области, изменение данных в одном месте также изменяет его в другом.
Используйте связывание данных, чтобы связать график с переменными рабочей области.
Установите свойства источника данных нанесенного на график объекта (такого как XDataSource
свойство) на имена переменных рабочей области. Затем вызовите refreshdata
функция для косвенного обновления свойств данных. Можно использовать этот метод для создания анимаций.
Связывание данных сохраняет графики, постоянно синхронизируемые с переменными рабочей области, которые они изображают.
Для примера итерационно аппроксимируйте pi
. Создайте переменную x
для представления числа и y
итерации для представления приближения. Постройте график начальных значений
x
и y
. Включите связывание данных с помощью linkdata on
чтобы график обновлялся при изменении переменных. Затем обновляйте x
и y
в цикле for. График обновляется на полсекунды интервалов.
x = [1 2]; y = [4 4]; plot(x,y); xlim([0 100]) ylim([2.5 4]) xlabel('Iteration') ylabel('Approximation for \pi') linkdata on denom = 1; k = -1; for t = 3:100 denom = denom + 2; x(t) = t; y(t) = 4*(y(t-1)/4 + k/denom); k = -k; end
Вместо использования функции связывания данных можно сохранить график синхронизированным с переменными рабочей области, задав свойства источника данных нанесенного на график объекта. Можно использовать этот метод для создания анимаций.
Для примера итерационно аппроксимируйте pi
. Создайте переменную x2
для представления числа и y2
итерации для представления приближения. Постройте график начальных значений
x2
и y2
. Связать график с переменными рабочей области путем установки свойств источника данных нанесенного на график объекта на 'x2'
и 'y2'
. Затем обновляйте x2
и y2
в цикле for. Звонить refreshdata
и drawnow
каждую итерацию для обновления графика на основе обновленных данных.
x2 = [1 2]; y2 = [4 4]; p = plot(x2,y2); xlim([0 100]) ylim([2.5 4]) xlabel('Iteration') ylabel('Approximation for \pi') p.XDataSource = 'x2'; p.YDataSource = 'y2'; denom = 1; k = -1; for t = 3:100 denom = denom + 2; x2(t) = t; y2(t) = 4*(y2(t-1)/4 + k/denom); refreshdata drawnow k = -k; end
brush
| linkaxes
| linkdata
| refreshdata