Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР3 2013 ПСМС.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
478.72 Кб
Скачать

Стовпчасті діаграми

Синтаксис:

bar(x, y)

bar(x, y, ‘<тип лінії>‘)

Опис

bar(V) виконує побудову графіка у виді стовпчастої діаграми.

Команда bar(y) виводить графік елементів одномірного масиву y у виді стовпців у позиціях, обумовлених масивом x, елементи якого повинні бути упорядковані в порядку зростання.

Приклад:

Побудова графіку функції у виді стовпчастої діаграми.

x = -2.9 : 0.2 : 2.9;

bar(x, exp(-x*x))

Теоретичний матеріал до завдання 2

Координати еліпсоїда задаються за допомогою наступної залежності від двох параметрів u та v:

x = a sin u cos v, y = b sin u cos v, z = c sin u cos v

Згенеруємо вектор-стовпець u і вектор-рядок v, що містять значення параметрів, тобто прямокутна сітка точок на області зміни параметрів, у яких будуть обчислюватися значення функцій x = x(u,v), y = y(u,v), z = z(u,v), визначається на прямокутній області зміни параметрів

[min(u), max(u)] x [min(v), max(v)]

Тоді оператори

X = a*sin(u)*cos(v); Y = b*sin(u)*sin(v);

будуть законні, оскільки вектор sin(u) того ж розміру, що і вектор-стовпець u, а розмір cos(v) збігається з розміром вектора-рядка v. У результаті матричних множень sin(u)*cos(v) і sin(u)*sin(v) виходять матриці однакових розмірів. Написати Z = c*cos(u) було б невірно, тому що для побудови поверхні повинні вийти матриці X, Y і Z однакових розмірів. Нескладно зрозуміти, що в матриці Z потрібно зробити однакові стовпці, їх число повинне збігатися з довжиною вектора v, для чого можна скористатися наступним присвоюванням:

Z = c*cos(u)*ones(size(v));

Приклад завдання координат для побудови еліпсоїда:

u = (0:0.05*pi:2*pi)';

v = [0:0.05*pi:2*pi];

X = a*sin(u)*cos(v);

Y = b*sin(u)*sin(v);

Z = c*cos(u)*ones(size(v));

Графічний інтерфейс користувача

Для створення будь-якого інтерфейсного компонента з заданими властивостями використовується функція uicontrol, що повертає вказівник на формований компонент:

hUIC = uicontrol(hFig, 'Style', 'тип_компонента', ...

'Свойство_1', 'Значение_1', ...

'Свойство_2', 'Значение_2', ...

...

'Свойство_n', 'Значение_n');

Перший аргумент функції uicontrol не є обов'язковим, і якщо він відсутній, те батьком (власником) створюваного компонента є поточний графічний об'єкт.

У існуючого інтерфейсного об'єкта можна змінити ті або інші властивості за допомогою функції set:

set(hUIC, ...

'Свойство_1', 'Значение_1', ...

'Свойство_2', 'Значение_2', ...

...

'Свойство_n', 'Значение_n');

Командна кнопка типу Push Button створюється за допомогою функції uicontrol, у якій параметру 'Style' присвоюється значення 'pushbutton'. За замовчуванням вона не забезпечується ніяким написом, має сірий колір і розташовується в лівому нижньому куті фігури.

При натисканні лівої кнопки миші в той момент, коли її курсор знаходиться над поверхнею кнопки, з'являється подія Callback і викликається функція, вказівник на яку заданий властивістю 'Callback'.

...

uicontrol('Style', 'pushbutton', ...

'Position', [20 20 60 20], ...

'String', 'Play', ...

'Callback', @graphic);

...

function graphic

...

end

Кнопки типу Checkbox (прапорці), використовувані для індикації неальтернативних комбінацій, мають квадратну форму, у якій при виділенні кнопки з'являється галочка. Генерація події Callback і автоматичне виділення кнопки відбуваються при натисканні на квадратику або супровідному його написі. Якщо кнопка типу Checkbox виділена, то значення її властивості 'Value' збігається зі значенням властивості Мах, за замовчуванням рівним 1. Повторне натискання по кнопці Checkbox автоматично змінює її стан на протилежний.

...

h = uicontrol('Style', 'checkbox', ...

'Position', [20 80 60 20], ...

'String', 'Output difference of the amplitudes');

...

if (get(h, 'Value') == get(h, 'Max'))

% Флажок установлен

...

else

% Флажок снят

...

end

Список рядків, що випадає, PopupMenu дозволяє користувачеві вибрати один рядок зі списку й у залежності від вибору зробити ту або іншу дію. Значенням властивості 'String' є масив осередків, кожен елемент якого – окремий рядок списку, що випадає. При виборі користувачем рядка зі списку відбувається генерація події Callback. Номер обраного рядка запам'ятовується у властивості 'Value'.

...

h = uicontrol('Style', 'popupmenu', ...

'Position', [20 80 60 20], ...

'String', {'Solid', 'Dashed', 'Dotted', 'Dash-dot', 'No line'});

...

index = get(h, 'Value');

switch index

case 1

% Пользователь выбрал первую строку списка

...

case 2

% Пользователь выбрал вторую строку списка

...

end

Простий (статичний) текст призначений для висновку символьного рядка (або декількох рядків) у виділеному прямокутнику. Відображуваний текст – значення властивості 'String'.

...

h = uicontrol('Style', 'text', ...

'Position', [20 100 60 20], ...

'String', 'Color:');

...

Для зміни кольору лінії, створеної за допомогою функції annotation, необхідно задати значення властивості 'Color'. Деякі можливі значення цієї властивості (з будь-якого стовпця таблиці):

В формате RGB

Сокращенно

Полностью

[1 1 0]

'y'

'yellow'

[1 0 1]

'm'

'magenta'

[0 1 1]

'c'

'cyan'

[1 0 0]

'r'

'red'

[0 1 0]

'g'

'green'

[0 0 1]

'b'

'blue'

[1 1 1]

'w'

'white'

[0 0 0]

'k'

'black'

Для зміни типу лінії, створеної за допомогою функції annotation, необхідно задати значення властивості 'LineStyle'. Можливі значення цієї властивості (тільки з першого стовпця таблиці):

Спецификатор

Стиль

'-'

Solid line

'--'

Dashed line

':'

Dotted line

'-.'

Dash-dot line

'none'

No line

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