4 Лекція МАТЛАБ (створення графічних додатків)

МАТЛАБ. СТВОРЕННЯ ГРАФІЧНИХ ДОДАТКІВ.

Графічні об'єкти. Графічні додатки містять меню, кнопки, області введення тексту, перемикачі, графіки.

Для отримання покажчиків є функції: gcf повертає покажчик в графічне вікно, gca повертає покажчик на осі координат, gco повертає покажчик на графічний об'єкт.

Властивості графічних об'єктів. Для установки властивостей об'єктів є функція set (указатель_на_об'ект, 'ізменяемое_свойство', 'его_новое_значеніе', 'ізменяемое_свойство_2', 'его_новое_значеніе_2').

Для отримання властивостей об'єкта є функція get (указатель_на_об'ект, 'властивість').

Створення програм з візуальним інтерфейсом. У вікні Command Window слід набрати guide і тоді відкриється вікно для створення візуального інтерфейсу.

4 Лекція МАТЛАБ (створення графічних додатків)

У ньому можна вибрати як вже існуючі (Open Existing GUI) так і створення нового інтерфейсу. Для цього пропонуються кілька найбільш поширених типових заготовок, а також можливість створити взагалі спочатку весь інтерфейс (Blank GUI Default).

Для прикладу створимо варіант інтерфейсу. Він призначений для введення декількох вихідних величин (аргументів) і обчислення декількох цікавлять користувача відповідей (результатів або, інакше кажучи, функцій від введених аргументів). Також передбачено побудову графіка будь-якої функції від будь-якої змінної за бажанням користувача, що вказує також мінімальне і максимальне значення аргументу і крок його зміни.

4 Лекція МАТЛАБ (створення графічних додатків)

Файл інтерфейсу має розширення .fig.

Підготовка М-файлу, відповідного створеному інтерфейсу.

Для того, щоб інтерфейс був пов'язаний з виконанням необхідних дій (наприклад, при натисканні на кнопку Calculate відбувалося б обчислення функцій і виведення їх значень у відповідних віконцях) необхідно попередньо описати в М-файлі всі, що потрібно зробити.

Оскільки доцільно почати з опису дій, виконуваних після натискання на кнопку Calculate, то розглянемо абзац тексту в М-файлі, що описує їх. Для цього в файлі інтерфейсу щелкнем кнопку Calculate, відкривши Property Inspector, і знайдемо Tag цієї кнопки. Нехай, наприклад, він виявився pushbutton1. Тоді в М-файлі знайдемо абзац, що має назву function pushbutton1_Callback (hObject, eventdata, handles)

У цьому абзаці (тобто нижче рядки його заголовка) вкажемо що має статися після її натискання.

4 Лекція МАТЛАБ (створення графічних додатків)

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

4 Лекція МАТЛАБ (створення графічних додатків)

Згадані функції повинні бути описані. Рекомендується описувати функції вище того місця програми, де вони викликаються.

Команда x = str2double (get (handles.edit1, 'String')); означає що в змінну x буде записано число, що повертається функцією str2double яка перетворює рядок цифр в число. Аргумент цієї функції це значення, що повертається функції get (handles.edit1, 'String')); яка звертається до елементу інтерфейсу handles.edit1 де handles означає звернення до візуального інтерфейсу, edit1 це позначення конкретного елемента інтерфейсу.

Команда S = sprintf ( '% g', f1); означає що в змінну S буде записаний рядок символів оператором sprintf ( '% g', f1); який звертається до аргументу f1 і '% g' вказує що аргумент є дійсним числом.

Команда set (handles.edit4, 'String', S); означає що в елемент інтерфейсу edit4 (віконце виведення тексту) буде виведений рядок символів міститься в змінної S.

Побудова графіка. Для побудови графіка призначена кнопка інтерфейсу Plot. Логіка побудови графіка така. Користувач вводить в віконця введення значення змінних NumFun (номер функції 1, 2 або 3), NumArg (номер аргументу), MinArg (мінімальне значення аргументу, з нього починаються підписи до горизонтальної осі), MaxArg (максимальне значення аргументу, до нього йдуть підписи до горизонтальній осі), StepArg (крок зміни аргументу). Потім користувач натискає кнопку Plot і відбувається побудова графіка відповідно до введених даними.

4 Лекція МАТЛАБ (створення графічних додатків)

В М-файлі опишемо відповідний цій кнопці абзац тексту. Після натискання на кнопку викликається функція VvodArg, що зчитує вихідні аргументи і повертає вектор їх значень. Потім викликається функція PostrGraf. Їй передається вектор аргументів. Вона будує графік. Для побудови графіка функція PostrGraf зчитує з віконець текстового введення інтерфейсу відповідні змінні. Потім підраховує число кроків, віднімаючи мінімальне значення з максимального і ділячи на величину кроку. При цьому команда round округлює до цілого значення результат ділення. NumberSteps = round ((MaxArg-MinArg) / StepArg); після цього для кожного елемента масиву горизонтальних координат horis точок графіка і для кожного елемента масиву вертикальних координат vert точок графіка визначаються значення. Коли все готово, то команда plot будує графік і потім на графік накладається координатна сітка.

4 Лекція МАТЛАБ (створення графічних додатків)
4 Лекція МАТЛАБ (створення графічних додатків)

Обчислити і зберегти результати. Для того, щоб обчислити результати і відразу ж зберегти їх в файл, призначена кнопка Calculate Save.

4 Лекція МАТЛАБ (створення графічних додатків)

У відповідному цій кнопці тексті програми, відбувається відкриття файлу

[F, p] = uiputfile ( 'Шлях до файлу \ Ім'я файла.расшіреніе', 'Вікно вибору');

4 Лекція МАТЛАБ (створення графічних додатків)

Де серед значень, що повертаються p шлях, f ім'я файлу. Після отримання цих значень, що повертаються функції uiputfile, слід об'єднати ці дані за допомогою команди KudaZapisat = strcat (p, f); подальші дії так само, як в раніше розглянутих вправах про роботу з файлами.

Побудувати і зберегти графік. Для того, щоб побудувати графік і відразу ж зберегти його, призначена кнопка Plot Save. У відповідному цій кнопці тексті програми спочатку відбувається побудова графіка. Можна було б просто поставити виклик функції, вже описаної вище, яка будує графік. Але все ж більш зрозуміло для вивчення, якщо всі змінні обчислюються тут же. Для контролю будується і сам графік.

4 Лекція МАТЛАБ (створення графічних додатків)

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

4 Лекція МАТЛАБ (створення графічних додатків)
4 Лекція МАТЛАБ (створення графічних додатків)

Відкрити результати обчислень з файлу. Для відкриття файлу з результатами обчислень призначена кнопка Open Data. У відповідному їй місці програми опишемо необхідні дії. Функція uigetfile готує дані про відкривається файлі для читання. При цьому відкривається вікно вибору, де зазначається ім'я файлу і шлях до нього. Ці дані є повертаються значеннями для функції uigetfile. Отримавши їх, об'єднуємо їх в одну змінну OtkudaChitat. Потім відкриваємо файл. Після відкриття файлу, зчитуємо цікавлять нас дані з файлу в змінні з відповідними назвами. Необхідно тепер вивести значення цих змінних в відповідні віконця текстового виведення в інтерфейсі. Для цього використовуємо функцію VivodRes і які раніше не використовувалася функцію VivodArgumentovNaEkran, яку необхідно описати вище опису кнопки.

4 Лекція МАТЛАБ (створення графічних додатків)

Відкрити графік і дані з файлу. Відкриття даних, необхідних для побудови графіка, з файлу здійснюється кнопкою Open Data Plot. У відповідному їй тексті програми логіка дій приблизно така ж як і при відкритті результатів обчислень з файлу. Після отримання всіх необхідних даних з файлу, здійснюється побудова графіка. Крім того, виводяться дані про вихідні аргументах і, крім того, про номер функції та номер аргументу, для яких побудований графік. При бажанні можна також доопрацювати цю вправу і виконати підписи до осей графіка відповідно до назв аргументів і функцій.

4 Лекція МАТЛАБ (створення графічних додатків)

Схожі статті