Змінні у системі MatLab та робота з ними
У мові MatLab, як і в мовах програмування, змінні— це об’єкти, яким присвоюються відповідні імена та які призначені для збереження відповідних даних, значення змінних, на відміну від констант, змінюються під час виконання програми. Залежно від типів даних змінні бувають числовими, символьними, векторними або матричними. Досконаліше типи даних та їх класифікація будуть розглянуті при описанні засобів програмування системи MatLab.
Змінним можна задавати відповідні значення за допомогою виразів, використовуючи знак = як оператор присвоєння. Формат виразу з оператором присвоєння такий:
ім’я_змінної = вираз
Для простоти синтаксису тип змінних заздалегідь не декларується. Вони визначаються типом виразу, значення якого присвоюється відповідній змінній. Наприклад, якщо результатом обчислення введеного виразу є матриця, відповідна змінна також буде типу матриця.
Правила написання імен змінних у системі MatLab досить прості. Ім’я змінної, або ідентифікатор, може містити будь-яку кількість символів, але запам’ятовуються та ідентифікуються з них тільки перший 31 символ. У цьому разі повинен виконуватися принцип унікальності, тобто, ім’я змінної не може збігатися з іменами інших змінних або функцій системи. Ім’я повинне починатися з літери і може містити літери, цифри або символ підкреслення (_). Неприпустимо ставити в імена змінних символи +, –, *, /, &, :, @, =, оскільки у цьому випадку правильна інтерпретація математичного виразу стає неможливою.
Є можливість вилучення імен змінних для очищення пам’яті та для підвищення ефективності роботи програми. У пам’яті комп’ютера дані користувача займають відповідне місце, яке називається робочою областю. За великої кількості змінних необхідно очищувати робочу область, вилучивши ті змінні, які для подальшої роботи не потрібні. Особливо важливо це робити, якщо такі змінні описують надмірний вектор або матрицю, і, відповідно, займають великий обсяг оперативної пам’яті. Як зазначалося у розділі 1.5.1, переглянути робочу область програми можна за допомогою команди Меню File → Show Workspace. Одна числова змінна займає у пам’яті комп’ютера 8 байт незалежно від використовуваного формату виведення чисел на екран. З одного боку, це зручно для користувачів з точки зору простоти роботи зданими, але впливати на ефективність їх розташування у пам’яті комп’ютера через визначення типів, як це зроблено у мовах програмування, програміст не може. Тому очищення робочої області через вилучення змінних є єдиною можливістю ефективного використання оперативної пам’яті комп’ютера.
Очистити робочу область можна через систему меню, якщо виконати команду File → Show Workspace, виділити за допомогою миші у вікні Workspace Browser відповідні змінні та натиснути кнопку Delete, Після виконання цієї операції значення раніше визначеної змінної a стає невизначеним, тому за спроб користувача вивести це значення на екран система видає повідомлення «Undefined function or variable «a».» («Невизначена функція або змінна а»):
>> a
??? Undefined function or variable «a».
>>
Іншим ефективним способом очищення робочої області є команда MatLab clear у різних її модифікаціях. Можливі формати команди clear:
clear — вилучення всіх описаних раніше змінних;
clear x — вилучення змінної x;
clear a,b,c — вилучення змінних a, b та c;
clear functions — вилучення функцій;
clear all — вилучення всіх змінних та функцій.
Наведемо приклад програми, де змінні спочатку визначаються, а потім вилучаються. Цей фрагмент містить також вирази зі змінними типу матриця та вектор, які будуть розглянуті у наступному параграфі.
>> x=2*pi
x=
6,2832
>>v=[1,2,3,4]
v=
1 2 3 4
>> MAT
???Underfined function or variable “MAT”
>>MAT=[1,2;3,4]
>>MAT=
1 2
3 4
>>clear v
>>v
??? Underfined function or variable “v”
>>clear
>>x
??? Underfined function or variable “x”
>>MAT
???Underfined function or variable “MAT”
При очищенні робочої області та завантаженні нових змінних у оперативній пам’яті комп’ютера створюється велика кількість неупорядкованих вільних областей, які межують із завантаженими. Така організація пам’яті не заважає роботі із системою, якщо вона працює в одно-задачному режимі, але у цьому разі втрачається ефективність Windows як багато-задачної операційної системи.
Щоб уникнути зайвих витрат пам’яті при роботі з великими масивами інформації, крім команди clear слід використовувати також команду pack. Ця команда здійснює перерозподіл даних у робочій області оперативної пам’яті, послідовно заповнюючи порожні місця. У цьому разі зменшується загальний обсяг пам’яті, який система відводить під змінні користувача. Крім того, команда pack сприяє ефективному використанню віртуальної пам’яті, записуючи змінні, до яких користувач рідко звертаєтеся, на жорсткий диск. Таким чином, при сумісному використанні команд clear і packможна значною мірою оптимізувати роботу системи, зокрема у багатозадачному режимі. Команда pack завжди виконує описану стандартну системну функцію і використовується без параметрів.
Використання апарату змінних у мові системи MatLab є дещо іншим та у деяких випадках набагато ефективнішим, ніж у мовах програмування. Оскільки система MatLab має розвинені бібліотеки для виконання операцій з матрицями та векторами, у багатьох випадках значно простіше визначити векторні або матричні константи та використовувати їх у математичних виразах, ніж виконувати ті самі операції через числові змінні. Наприклад, такі нескладні, але важливі з практичної точки зору задачі, як табуляція значень функції або множення елементів однієї матриці на відповідні елементи іншої, засобами MatLab вирішуються дуже просто через матричні та векторні операції, і відповідні програми займають кілька рядків. Для розв’язання аналогічних задач засобами стандартного програмування необхідно складати циклічні структури, і їх велика кількість значно ускладнює написання програми.
Функція вилучення змінних у системі MatLab деякою мірою відповідає апарату динамічних змінних усучасних мовах програмування, але використовувати її значно простіше.
Дата добавления: 2016-05-11; просмотров: 1514;