Функциям построения графика вернете объект или объекты, созданные функцией. Для примера:
h = plot(1:10);
h
относится к линии, нарисованной в графике значений с 1 по 10.
Синтаксис dot notation использует переменную объекта и имя свойства с учетом регистра, соединенное с точкой (.
) для формирования записи имени свойства точки обозначения:
объект. PropertyName
Если переменная объекта является нескалярной, используйте индексацию для ссылки на один объект:
объект (n) .PropertyName
Если h
- линия, созданная plot
function, выражение h.Color
- значение этой линии Color
свойство:
h.Color
ans = 0 0.4470 0.7410
Если вы присвоите значение цвета переменной:
c = h.Color;
Переменная c
является двойником.
whos
Name Size Bytes Class c 1x3 24 double h 1x1 112 matlab.graphics.chart.primitive.Line
Вы можете изменить значение этой линии Color
свойство с оператором назначения:
h.Color = [0 0 1];
Используйте ссылки на свойства записи через точку в выражениях:
meanY = mean(h.YData);
Или изменить значение свойства:
h.LineWidth = h.LineWidth + 0.5;
Ссылка на другие объекты, содержащиеся в свойствах с несколькими ссылками на точку:
h.Annotation.LegendInformation.IconDisplayStyle
ans = on
Установите свойства объектов, содержащихся в свойствах:
ax = gca;
ax.Title.FontWeight = 'normal';
Графические функции могут возвращать массив объектов. Для примера:
y = rand(5); h = plot(y); size(h)
ans = 5 1
Доступ к линии, представляющей первый столбец в y
использование индекса массива:
h(1).LineStyle = '--';
Используйте set
функция для установки LineStyle
из всех линий массива:
set(h,'LineStyle','--')
С помощью записи через точку можно использовать индексацию «end», чтобы добавить данные к свойствам, которые содержат массивы данных, такие как линии XData
и YData
. Для примера этот код обновляет линию XData
и YData
вместе, чтобы вырастить линию. Перед визуализацией вызова необходимо убедиться, что размер x - и y-данных линии совпадает drawnow
или возврат к MATLAB® приглашение.
h = plot(1:10); for k = 1:5 h.XData(end + 1) = h.XData(end) + k; h.YData(end + 1) = h.YData(end) + k; drawnow end
Переменные объекта, возвращенные графическими функциями, handles. Указатели являются ссылками на фактические объекты. Переменные объекта, которые являются указателями, ведут себя определенными способами при копировании и при удалении объекта.
Для примера создайте график с одной строкой:
h = plot(1:10);
Теперь скопируйте переменную объекта в другую переменную и установите значение свойства с новой переменной объекта:
h2 = h; h2.Color = [1,0,0]
Назначение переменной объекта h
на h2
создает копию указателя, но не объект, на который ссылается переменная. Значение Color
свойство, доступное из переменной h
то же самое, что и доступ из переменной h2
.
h.Color
ans = 1 0 0
h
и h2
обратитесь к тому же объекту. Копирование переменной объекта указателя не копирует объект.
Теперь в рабочей области есть две переменные объекта, которые ссылаются на одну линию.
whos
Name Size Bytes Class h 1x1 112 matlab.graphics.chart.primitive.Line h2 1x1 112 matlab.graphics.chart.primitive.Line
Теперь закройте рисунок, содержащую линейный график:
close gcf
Объект линия больше не существует, но переменные объекта, которые ссылаются на линию, все еще существуют:
whos
Name Size Bytes Class h 1x1 112 matlab.graphics.chart.primitive.Line h2 1x1 112 matlab.graphics.chart.primitive.Line
Однако переменные объекта больше не действительны:
h.Color
Invalid or deleted object.
h2.Color = 'blue'
Invalid or deleted object.
Чтобы удалить недопустимые переменные объекта, используйте clear
:
clear h h2
Чтобы увидеть свойства, содержащиеся в объекте, используйте get
функция:
get(h)
MATLAB возвращает список свойств объектов и их текущих значений:
AlignVertexCenters: 'off' Annotation: [1x1 matlab.graphics.eventdata.Annotation] BeingDeleted: 'off' BusyAction: 'queue' ButtonDownFcn: '' Children: [] Clipping: 'on' Color: [0 0.4470 0.7410] ... LineStyle: '-' LineWidth: 0.5000 Marker: 'none' ...
Вы можете увидеть значения для свойств с перечисленным набором возможных значений, используя set
функция:
set(h,'LineStyle')
'-' '--' ':' '-.' 'none'
Чтобы отобразить все настраиваемые свойства, включая возможные значения для свойств с перечисленным множеством значений, используйте set
с переменной объекта:
set(h)
Вы также можете получить доступ и изменить свойства, используя set
и get
функций.
Основной синтаксис для настройки значения свойства в существующем объекте:
set(object,'PropertyName',NewPropertyValue)
Чтобы запросить текущее значение определенного свойства объекта, используйте оператор формы:
returned_value = get(object,'PropertyName');
Имена свойства всегда являются векторами символов. Можно использовать одинарные кавычки или переменную, являющуюся вектором символов. Значения свойств зависят от конкретного свойства.
Если аргумент объекта является массивом, MATLAB устанавливает заданное значение для всех идентифицированных объектов. Для примера:
y = rand(5); h = plot(y);
Установите все линии красным цветом:
set(h,'Color','red')
Чтобы задать одинаковые свойства для ряда объектов, задайте имена свойства и значения свойств с помощью структуры или массива ячеек. Для примера задайте структуру, чтобы задать свойства осей соответствующим образом, чтобы отобразить конкретный график:
view1.CameraViewAngleMode = 'manual'; view1.DataAspectRatio = [1 1 1]; view1.Projection = 'Perspective';
Чтобы задать эти значения на текущей системе координат, введите:
set(gca,view1)
Можно задать массив ячеек с именами свойства и использовать его, чтобы получить значения для этих свойств. Например, предположим, что вы хотите запросить значения свойств axes «camera mode». Во-первых, задайте массив ячеек:
camModes = {'CameraPositionMode','CameraTargetMode',... 'CameraUpVectorMode','CameraViewAngleMode'};
Используйте этот массив ячеек в качестве аргумента, чтобы получить текущие значения этих свойств:
get(gca,camModes)
ans = 'auto' 'auto' 'auto' 'auto'