Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ispolzovanie_Matlab_Dlya_Modelirovania_Dvizheni...docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать

Установка свойств объекта

Все свойства объекта имеют значения по умолчанию. Однако может оказаться полезным изменять настройки некоторых свойств, чтобы модифицировать график. Есть два пути настройки свойств объекта:

  • Задавать значения свойств при создании объекта.

  • Устанавливать значение свойства уже существующего объекта.

Установка свойств из команд вычерчивания

Вы можете задать пары свойство-значение объекта как аргумент для многих функций вычерчивания (plot, mesh, surf). Например,

surf(x,y,z,'FaceColor','interp','FaceLighting','gouraud')

Установка свойств существующих объектов

Чтобы изменить значения свойств существующих объектов, можно использовать команду set или редактор свойств. Большинство функций вычерчивания возвращают дескрипторы объектов ими создаваемых, так что есть возможность изменять эти объекты при помощи команды set. К примеру, следующие команды рисуют матрицу 5×5 (создают пять ломаных, по одной на столбец), а затем устанавливают свойство Marker в 'square' и свойство MarkerFaceColor в 'green':

h = plot(magic(5));

set(h,'Marker','s','MarkerFaceColor','g')

В этом случае h – это вектор, содержащий пять дескрипторов, по одному на каждую из ломаных на графике. Команда set устанавливает одинаковые значения для свойств 'Marker' и 'MarkerFaceColor' всех ломаных.

Определение осей или рисунка

При выполнении команды вычерчивания графика Matlab всегда создает оси или рисунок, если они не существуют. Однако хорошим тоном программирования будет указать графическое окно и оси, в которых необходимо изобразить график. Данный алгоритм предотвращает следующие проблемы:

  • новый график перезаписывает график в активном рисунке (рисунок становится активным (текущим), когда пользователь щелкает по нему мышкой).

  • текущий рисунок может быть в непредсказуемом состоянии и не вести себя так, как этого ожидает ваша программа.

Следующий пример показывает функцию Matlab, которая вычисляет математическое выражение от входного аргумента x, а затем вычерчивает результаты. Второй вызов функции plot вычерчивает среднее значение результатов красной линией.

Пример.

x = -10:.005:40;

% Вычисляется выражение

y = 1.5*cos(x) + 6*exp(-.1*x) + exp(.07*x).*sin(3*x);

% Вычисляется среднее арифметическое элементов вектора y

ym = mean(y);

hfig = figure('Name','Function and Mean');

hax = axes('Parent',hfig);

plot(hax,x,y)

% К начерченному графику добавляется линия с координатой y, равной среднему арифметическому ym

hold on

plot(hax,[min(x) max(x)],[ym ym],'Color','red')

% На ось Y добавляется метка со значением ym

ylab = get(hax,'YTick');

set(hax,'YTick',sort([ylab ym]))

% Указывается название

title ('y = 1.5cos(x) + 6e^{-0.1x} + e^{0.07x}sin(3x)')

% и метки осей

xlabel('X Axis');

ylabel('Y Axis')

Нахождение дескрипторов существующих объектов

Функция findobj позволяет получать дескрипторы графических объектов поиском объектов с определенными значениями свойств. С помощью findobj можно указать значения любой комбинации свойств, что позволяет легко выделить один объект из множества. findobj также разбирает регулярные выражения (regexp). Подробнее об использовании этой функции читайте в справочнике Matlab.

Нахождение всех объектов определенного типа

Поскольку все объекты имеют свойство Type, которое идентифицирует тип объекта, можно найти дескрипторы всех присутствующих объектов определенного типа. К примеру,

h = findobj('Type','patch');

находит дескрипторы всех объектов patch.

Нахождение объектов с определенным свойством

Для сужения поиска можно определять различные свойства:

h = findobj('Type','line','Color','r','LineStyle',':');

Указанная команда находит все дескрипторы всех пунктирных линий красного цвета.

Ограничение границ поиска

Возможно задать начальную точку в иерархии объектов передачей в качестве первого аргумента дескриптора начального рисунка или осей. К примеру,

h = findobj(gca,'Type','text','String','\pi/2');

находит строку pi/2 только в пределах текущих осей.

Использование функции findobj в качестве аргумента

Поскольку findobj возвращает дескрипторы, ее можно использовать вместо аргумента типа дескриптор. Например,

set(findobj('Type','line','Color','red'),'LineStyle',':')

Этот код находит все красные линии и делает их пунктирными.

Базовые графические объекты

axes

Cистема координат для отображения графиков. Оси всегда содержатся в пределах графического окна (figure)

line

Линия, полученная соединением определяющих ее точек.

rectangle

2-D объект, который имеет настраиваемые цвета границ и внутренней области и переменную кривизну (может рисовать эллипсы).

text

Строки, позиционируемые в системе координат (axes).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]