Синтаксис мови gnu octave

[Ред] Змінні

<имя переменной> = <значение>

Оскільки GNU Octave вважається мовою високого рівня, до визначення змінних виставляються певні вимоги:

  • назва змінної може містити літери, цифри і символи підкреслення "_", але не повинно починатися з цифри;
  • мова GNU Octave чутливий до регістру, тобто А та а - це різні змінні;
  • створювати змінні можна в будь-якому місці програми (вони не описуються і не оголошуються);
  • змінні не мають "сталості" типу даних, тобто спочатку можна привласнити а = 10. а потім а = "Hello!" ;

Як і в звичайних мовах програмування, змінні Octave поділяються на глобальні (визначені в файлах-сценаріях) і локальні (визначені в файлах-функціях). Розглянемо наступний приклад. Нехай результати розрахунків (в даному випадку, присвоювання значень змінним а і b) "головною" програми Script1 передаються в підпрограму Script2, а та, в свою чергу, виконує над ними якісь дії і викликає функцію function MyFunction ().

# Файл Script1.m
a = 1;
b = 3;
Script2;

# Файл Script2.m
a = 2;
b = 2;
MyFunction ();

# Файл MyFunction.m
function MyFunction ()
a = 3;
b = 3;
endfunction

В результаті виклику трьох m-файлів, значення змінних залишаться а = 2 і b = 2. Справа в тому, що змінні оголошені в функції вважаються локальними, тобто вони створюються при зверненні до MyFunction і видаляються з пам'яті при виході з неї. Змінні ж створені в скриптах "живуть" до тих пір, поки не буде виконано весь набір команд (неважливо, чи розміщені ці команди в одному або різних файлах). І більш того, значення глобальних змінних зберігаються протягом усього сеансу роботи з Octave. тобто вони доступні навіть в абсолютно різних програмах, що запускаються послідовно виходячи із системи. Таким чином, у наведеному вище прикладі по суті створені дві різні пари змінних з однаковими іменами - одна пара а й b існує поза визначення функцій, друга її копія - суто в межах function. endfunction.

[Ред] Global декларація змінних

Як було зазначено вище, простору змінних скриптів і функцій не перетинаються між собою. Однак існує можливість з функції звернутися до глобальної змінної для використання її значення (як читання, так і зміни). Реалізується така можливість за допомогою ключового слова global.

[Ред] Persistent декларація змінних

[Ред] Структури даних

Досить часто доводиться мати справу з даними, які згруповані по деякому логічному умові, але мають в загальному випадку різні типи. З одного боку їх можна розглядати як єдину структуру, а з іншого - як набір окремих елементів. Подібні конструкції в мовах програмування називають "записами". У Octave їх називають структурами даних.

<имя переменной 1>.<имя переменной 2>[.<имя переменной 3>[.<имя переменной 4>[. <имя переменной N>]]]

Приклад 3. Визначення міжосьової відстані зубчастої передачі

Gear1.m = 1.5; # Модуль зубчастого колеса №1
Gear1.z = 20; # Число зубів зубчастого колеса №1

Gear2.m = 1.5; # Модуль зубчастого колеса №2
Gear2.z = 50; # Число зубів зубчастого колеса №2

function d = Diam (Gear) # розрахунок делительного діаметра
d = Gear.m * Gear.z;
endfunction

a = (Diam (Gear1) + Diam (Gear2)) / 2 # міжосьова відстань: ans = 52.5

Структури даних можна створювати за допомогою вбудованої функції struct. має синтаксис struct (<"поле 1">, <значение1>, <"поле 2">, <значение 2>. ):

У Octave також передбачені ряд функцій getfield, rmfield, isfield, isstruct, fieldnames, struct, cellstr, iscellstr, setfield, subsref, subsasgn (див. Help).

[Ред] Формат виведення значень

Очевидно, що в різних випадках необхідно виводити результати обчислень з різною точністю. Для цих цілей служить команда format.

де <опция> може приймати одне із значень:

Схожі статті