авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 || 3 |

«1 Поволжский государственный университет телекоммуникаций и информатики Акчурин Э.А. Система компьютерной математики Scilab ...»

-- [ Страница 2 ] --

interp3 Трехмерная интерполяция по таблице просмотра.

interpn n-мерная интерполяция по таблице просмотра.

interpft(X,n) Одномерная интерполяция Yi(Xi) с использованием БПФ с n точками.

mkpp Создает кусочный полином с точками разрыва и продолжения.

spline(X,Y,Xx) Кубическая сплайновая интерполяция Yy(Xx) по таблице просмотра Y(X).

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

Функция Описание ode45 Одношаговые методы Рунге-Кутта 4 и 5 порядка. Точность средняя.

Классический метод, рекомендуется для начальной пробы.

ode23 Одношаговые явные методы Рунге-Кутта 2 и 4 порядка. Точность низкая.

ode23s Одношаговый метод Розенброка 2 порядка. Точность низкая, скорость повышенная.

ode23t Метод трапеций с интерполяцией. Точность низкая.

ode23tb Неявный метод Рунге-Кутта в начале решения и метод, использующий формулы обратного дифференцирования 2-го порядка в последующем. Точность низкая.

ode113 Многошаговый метод Адамса-Башворта-Мултона переменного порядка. Точность зависит от задачи.

ode15s Многошаговый метод переменного порядка (1...5, по умолчанию 5). Точность ниже средней.

рекомендуется использовать если ode45 слишком медленный.

3.10.2. Дифференциальные уравнения с задержками В этих уравнениях состояние системы опередляется не только предыдущими состояниями, но и состяниями с фиксированными задерджками. Во всех методах для решения используется численный метод с выбираемыми опциями, задаются интервал интегрирования, шаг, начальное состояние и задержки. Для всех методов повышение точности сопровождается снижением скорости.

Функция Описание dde23 Одношаговые методы Рунге-Кутта 4 и 5 порядка. Точность средняя.

Классический метод, рекомендуется для начальной пробы.

3.11. Разреженные матрицы Матрицы без нулевых значений называются полными, а с нулевыми значениями – разреженными. Для разреженных матриц можно использовать специальные функции, упрощающие арифметические операции (например, умножать на не нужно). Разреженная матрица хранится в виде массивов, содержащих только ненулевые элементы с их индексами в полной матрице. Все встроенные в Scilab арифметические, логические и индексные операции могут быть применены и к разреженным, и к полным матрицам. Применять разреженные матрицы целесообразно, когда разреженность значительна.

Функция Описание f ind(X) Возвращает индексы матрицы Х для ненулевых элементов.

full(S) Создает из разреженной матрицы S полную.

sparse(A) Создает из полной матрицы А разреженную.

3.12. Матрицы и линейная алгебра Матрица – это двумерный массив вещественных или комплексных чисел. В линейной алгебре определено много матричных операций, которые поддерживаются в Scilab. Линейная алгебра включает категории операций:

Матричная арифметика.

Линейные уравнения.

Собственные значения.

Особые значения Факторизация матриц 4. Scilab, программирование Scilab – язык программирования высокого уровня, который включает структуры данных, основанные на матрицах, собственные внутренние типы данных, множество функций и среду для разработки собственных функций.

Это интерпретатор, выполняет команды построчно.

Поддерживаются импорт и экспорт многих типов данных, объектно-ориентированное программирование, интерфейс с внешними технологиями (COM, Java, C, Fortran), работа с устройствами последовательного порта ввода/вывода.

Возможны два способа программирования:

Работа в режиме суперкалькулятора, в командном окне.

Создание sce-файла с последующим исполнением.

Любая операция в Scilab завершается занесением результата в рабочую область и его выводом в командное окно.

Вывод в командное окно можно заблокировать, разместив после операции знак – точка с запятой (;

).

В строке можно указать несколько операций, разделяя их знаками запятых. Если строка очень длинная, ее можно разместить в нескольких строках, завершая каждую знаком продолжения из трех или более точек (...).

4.1. Preferences (Предпочтения) В Scilab используются внутренние системные параметры, которые выбираются по умолчанию и удовлетворяют большинство пользователей.

При желании изменить их следует использовать команду меню Preferences. Она выводит выпадающее меню, в котором можно выбрать язык интерфейса (английский, французский), цвета текста и фона, шрифт, отображение панели инструментов и др.

4.2. Scilab – суперкалькулятор В командном окне можно производить вычисления, как на калькуляторе. Порядок действий:

После символа приглашения ввести выражение.

При необходимости можно заблокировать вывод результата, вводя знак – точка с запятой (;

). Это целесообразно делать при выполнении многих вычислений подряд, когда промежуточные значения не требуются.

Завершить ввод клавишей Enter.

Scilab выведет результат с именем переменной в левой части выражения. Если имя отсутствует, то, по умолчанию присваивается имя ans (ответ).

Пример:

Ввод вектора для заданной переменной.

Имя результата Ответ Вызов функции Имя результата по умолчанию Ответ Приглашение продолжить 4.3. Переменные Переменная имеет имя, связанное с данными в памяти. Требования к имени:

Длина произвольная, но значимы первые N символов (по умолчанию 64).

Символы – буквы латиницы, арабские цифры, символ подчеркивания.

Первый символ в имени – буква.

Высота букв имеет значение.

Имя должно быть уникальным.

4.4. Ключевые слова Ключевые слова Scilab резервирует для внутренних задач. Их нельзя использовать в качестве имен переменных. Их список можно получить в справке в разделе Programming (Программирование).

4.5. Типы данных в Scilab Scilab распознает несколько типов данных:

Специальные константы.

Логические.

Полиномы.

Строки.

Эти объекты преобразуются в специальные матрицы, которые являются скалярами.

4.5.1. Специальные константы Подобно MATLAB в Scilab поддерживаются специальные константы. Имена этих констант начинаются с символа (%).

Эти константы защищены от переопределения.

Значение Scilab MATLAB pi=3.1415927… %pi pi Последний результат ans ans Мнимая единица %i I или j e=2.7182818 %e Точность вычислений %eps eps Не число %nan NaN Бесконечность %inf inf Полином с символом S %s Булева константа true %t true Булева константа false %f false 4.5.2. Списки Тип данных список состоит из набора данных, которые могут быть разного типа. Списки могут быть вложенными друг в друга. Существуют списки: обыкновенный, типизированный, матрично-ориентированный.

Обыкновенный список. Для его создания используется функция list(a1,…an). Максимальное число компонент в списке 16. Вызов компонента списка - L(номер ai). Доступа к элементам компонента нет.

Типизированный список. Он в первой позиции содержит признак используемых в списке компонент. По этому признаку пользователь может выбирать нужные для обработки списка функции Scilab. Для создания типизированного списка используется функция tlist(typ, a1,…an). Максимальное число компонент в списке 15. Вызов компонента списка - T(номер ai). Доступа к элементам компонента нет.

Матрично-ориентированный список. Он отличается от типизированного тем, что позволяет получить доступ к элементам каждого компонента в списке по номеру. В первой позиции списка размещается вектор символов, содержащий символ 'V', определяющий тип этого вектора, и имена типов компонент в списке. Для создания типизированного списка используется функция mlist(typ, a1,…an). Максимальное число компонент в списке 15. Вызов компонента списка – M.имя_типа(номер ai). В примере создается список с двумя компонентами: набор символов с именем name, вектор чисел с именем value. Из списка выбирается элемент 3 из компонента name и элемент 1 из компонента value.

.

4.5.3. Матрицы из строк символов Позволяют создать шаблон для матричных вычислений. В матрице s запоминаются выражения с переменными. Если в сеансе определены значения переменных, входящих в выражения матрицы s, то при обращении к этой матрице с помощью функции evstr(s) вычисления выражений осуществляются. Строки символов в матрице могут быть созданы, используя обычные или квадратные скобки. Каждая строка заключается в апострофы.

Задать матрицу s из символов Значения переменных Вычислить значения элементов s 4.5.4. Полиномы и матрицы полиномов Манипуляции с полиномами подобны работе с матрицами символьных строк. Шаблоны полиномов полезны для задания коэффициентов или корней полиномов.

Задать полином p переменной s, имеющий заданные корни.

Задать полином q переменной s, имеющий заданные коэффициенты c. Строка 'c' определяет режим с коэффициентами.

Вычислить символьно.

4.6. Выражения в Scilab Выражения задают правила нахождения значения, которое присваивается переменной. Оператор присвоения в Scilab имеет формат: Имя переменной = Выражение.

Выражение – это правило вычисления значения, записанное на языке программирования. В состав выражения могут входить имена переменных, операторы и функции.

При работе в командной строке имя переменной может пропускаться. Тогда значение выражения присваивается служебной переменной с именем ans (ответ).

В Scilab определены типы выражений:

На языке Scilab.

Строковые.

С использованием функций на языках С и Фортран.

4.7. Операторы для вычислений В Scilab для выполнения операций можно использовать операторы или функции. Для одних операций определены только операторы, для других только функции, для третьих можно использовать и операторы и функции.

В Scilab предусмотрены три категории операторов:

Арифметические. Используются с численными данными.

Отношения. Используются для сравнения.

Логические. Осуществляют операции над данными логического типа.

4.7.1. Арифметические операторы В Scilab арифметические операторы над двумерными массивами могут выполняться по правилам обычной или матричной алгебры (когда массив интерпретируется, как матрица). Операторы обычной алгебры действия над элементами массива осуществляют поэлементно, а матричной - по особым правилам. В операторах обычной алгебры, которые дают результат, отличающийся от аналогичных операторов матричной алгебры, перед символом операции добавляется символ точка (.).

Оператор Описание A+ B Сложение. A, B должны быть одинакового размера. Одно из них может быть скаляром.

+A Унарный плюс.

A–B Вычитание. A, B должны быть одинакового размера. B может быть скаляром.

-A Унарный минус.

A*B Умножение матриц. Для нескалярных A, B число столбцов в А должно быть равно числу строк в В.

A.* B Умножение массивов. Почленное умножение A и B. A, B должны быть одинакового размера. Одно из них может быть скаляром.

A/B Деление матриц правое. A делится на B.Тот же результат дает A*inv(B).

A./ B Деление массивов. Почленное деление A на B. A, B должны быть одинакового размера. Одно из них может быть скаляром.

A\B Деление матриц левое. B делится на A. Тот же результат дает inv(A)*B.

A.\ B Деление массивов левое. Почленное деление B на A. A, B должны быть одинакового размера. Одно из них может быть скаляром A:H:B Вертикальное двоеточие. Список от A до B с шагом H.

A:B Вертикальное двоеточие. Список от A до B с шагом 1 (или -1).

A^B Возведение матрицы в степень. A возводится в степень B.

A.^ B Возведение массива в степень. Компоненты A возводятся в степень B. A, B должны быть одинакового размера. Одно из них может быть скаляром.

A‘ Транспонирование матрицы. Для комплексных матриц есть преобразование комплексных значений в сопряженные.

A.’ Транспонирование массива. Для комплексных массивов нет преобразования комплексных значений в сопряженные.

4.7.2. Операторы отношения Оператор Описание AB A меньше, чем B.

A = B A меньше или равно B.

AB A больше, чем B.

A = B A больше или равно B.

A == B A равно B.

A ~= B A не равно B.

AB 4.7.3. Логические операторы и функции Логические операторы бывают поэлементными и побитовыми.

Поэлементные операторы работают с массивами логического типа.

Оператор Функция Описание A&B and(A,B) Операция «И», логическое умножение.

A|B or(A,B) Операция «ИЛИ», логическое сложение.

~A not(A,B) Операция «НЕ», инверсия.

4.7.4. Приоритеты При использовании в выражениях операторы выполняются с установленным приоритетом. Операции одинакового уровня исполняются в порядке слева направо. Старшинство операций определяется уровнями:

1. Круглые скобки ( ).

2. Транспонирование массива (.'), возведение массива в степень (.^), транспонирование ('), возведение матрицы в степень(^).

3. Унарный плюс (+), унарный минус (-), логическое «НЕ» (~).

4. Умножение массивов (.*), правое деление массивов (./), левое деление массивов (.\), умножение матриц (*), правое деление матриц (/), левое деление матриц (\).

5. Сложение (+), вычитание (-).

6. Вертикальное двоеточие (:).

7. Меньше чем (), меньше чем или равно (=), больше чем (), больше чем или равно (=), равно (==), не равно (~=).

8. Поэлементное «И» (&).

9. поэлементное «ИЛИ» (|).

4.8. Инструкции управления программой Для управления программой предусмотрены инструкции. Они записываются строками, признаком конца инструкции является слово end. Есть 4 категории операторов:

Условные.

Цикла.

Управления ошибками.

Завершение программы.

4.8.1. Условные инструкции Инструкция Формат if (Если) if условие При выполнении условия группа операторов исполняется, в противном Инструкции случае она пропускается. end if if условие с фразой else (Иначе) Инструкции При выполнении условия исполняется группа операторов 1. В else противном случае исполняется группа операторов 2, входящая во фразу Инструкции else. end if if условие с фразой elseif (Иначе если) Инструкции При выполнении условия 1 исполняется группа операторов 1. В elseif условие противном случае при выполнении условия 2 исполняется группа Инструкции операторов 2, входящая во фразу elseif. Там может быть вложенная end инструкция if.

select(Переключить) с фразами select выражение case (Значение), их число не ограничено, case значение else (Иначе) Инструкции end case значение По выражению вычисляется значение селектора для выбора Инструкции исполняемых операторов. Каждому значению селектора соответствует.........................

своя группа операторов. Если вычисленному селектору нет группы case значение N операторов, то исполняются операторы фразы otherwise. Инструкции N else Инструкция применяется для множественного ветвления. Инструкции end 4.8.2. Инструкции циклов Инструкция Формат for (Для) for index = Начало:Шаг:Конец В цикле от начального значения переменной index до конечного с Инструкции заданным шагом выполняются инструкции цикла. Разделяются end запятыми.

for index = Начало: Конец Если шаг равен 1, то Инструкции end Это цикл с заданным числом повторений.

while (Пока) while условие Пока условие выполняется, инструкции цикла отрабатываются. Инструкции Это цикл с неизвестным числом повторений. end Чтобы цикл завершился, инструкции должны приводить к нарушению условия.

continue while условие Применяется в циклах для досрочного завершения итерации цикла Инструкции (когда продолжение не дает ничего полезного) и перехода к началу if условие 2 then continue цикла. Инструкции end end break while условие Применяется в циклах для досрочного завершения цикла (когда Инструкции продолжение не дает ничего полезного). if условие 2 then break Инструкции end end 4.8.3. Инструкции управления ошибками Инструкции Формат try (Попробуем) try Инструкции 1 Инструкции catch (Схватить) catch Инструкции 2 Инструкции end end Между try и catch размещаются последовательно исполняемые инструкции. Если происходит ошибка, то управление передается фразе catch. Если ошибок не было, то фраза catch пропускается.

4.8.4. Инструкция завершения программы В программах для завершения работы и возврата в точку вызова используется инструкция return.

Инструкции Формат return return Выражение [x1,..,xn]=return(a1,..,an) В примере переменным x1,..,xn передаются значения a1,..,an.

4.9. Символы ссылок В программах для ссылок используются специальные символы:

Символ Назначение : Вертикальное двоеточие Оператор создания последовательности чисел.

, Запятая Разделение команд в одной строке.

Разделение параметров функции.

{ } Фигурные скобки Включают массив ячеек.

. Одна точка Разделитель имени структуры и поля.

Разделитель имени класса и метода.

... Три точки Признак продолжения оператора в другой строке.

( ) Круглые скобки Включает аргументы для функций.

// Признак комментария.

% Префикс специальных констант.

;

Точка с запятой Разделяет компоненты в массиве.

Блокирует вывод результата в командное окно.

‘ ‘ Одиночные кавычки В них размещается строка.

Пробел Разделяет элементы вектора.

/ \ Прямой и обратный слеш Разделение элементов в пути к файлу.

[ ] Квадратные скобки Внутри них массив.

4.10. Структуры данных Наиболее важная структура Scilab – массив, в котором могут размещаться числа, символы, логические величины, другие структуры. Для представления одиночных чисел используется массив 1х1, векторов длиной N – массив 1хN.

Массивы с размерностью более 2 называются многомерными. Они имеют более двух индексов. Трехмерный массив можно представить как набор страниц, каждая из которых содержит матрицу.

Доступ к элементам многомерного массива осуществляется по номерам индексов:

A(строка, ряд, размерность 3, размерность 4,...) 4.11. Типы данных В Scilab можно использовать разные типы данных (целые и вещественные числа, символы и строки, логические значения и др.). Вы можете разработать даже свои типы, используя классы Scilab.

Иерархия типов данных в Scilab:

Array. Массив (полный или разреженный).

logical. Логический тип со значениями true (истина) = 1, false (ложь) = 0.

char. Символ.

numeric. Численный тип.

double. Тип с двойной точностью с плавающей точкой. использует 64 бита: бит 63 – знак числа (0=плюс, 1=минус), биты 62...52 – порядок, 51...0 – мантисса. Это численный тип по умолчанию, дает максимальную точность.

single. Тип с одинарной точностью с плавающей точкой, использует 32 бита: бит 31 – знак числа (0=плюс, 1=минус), биты 30...23 – порядок, 22...0 – мантисса. По сравнению с double имеет меньшую точность, но требует и меньшую память.

int8, int16, int32. Целые числа со знаком с размерностями 8, 16, 32 бита. Отличаются диапазоном доступных чисел.

uint8, uint16, uint32. Положительные целые числа с размерностями 8, 16, 32 бита. Отличаются диапазоном доступных чисел.

cell. Ячейка, может содержать любые данные, в том числе массивы.

structure. Структура – массив структур в стиле языка программирования С. Каждая структура содержит именованные поля, внутри которых могут находиться данные разных типов.

user classes. Классы пользователя.

Java. Объекты, сконструированные из классов языка программирования Java.

function handle. Дескриптор функции. Вы можете передавать его в другие функции.

4.11.1. Численные типы Scilab имеет типы для представления вещественных (с дробной частью) и целых чисел.

Для представления вещественных чисел Scilab использует форматы с плавающей точкой. В них число представляется в виде ЗнакМантисса*2 в степени порядок.

Поле, отведенное под число, разделено на три подполя.

Знак числа (один бит) Мантисса Порядок Scilab имеет 2 типа чисел с плавающей точкой с размерностями 32 и 64 бита. Они отличаются диапазоном чисел и точностью. Определены:

Тип Бит знака Биты мантиссы Биты порядка Модуль минимума Модуль максимума single 31 30...23 22...0 1.18E-038 3.4E+ double 63 62...52 51...0 2.22E-308 1.8E+ Модуль минимума определяет точность представимых чисел. Числа, модуль которых меньше модуля минимума, интерпретируются, как машинный 0.

Модуль максимума определяет диапазон представимых чисел. Числа, модуль которых больше модуля максимума, интерпретируются, как %inf (Infinity –бесконечность).

По умолчанию Scilab использует тип double, как имеющий максимальные точность и диапазон.

Для работы с целыми числами Scilab имеет 6 типов (3 знаковых и 3 беззнаковых) с размерностями 8, 16, 32 бита. Они отличаются диапазоном доступных чисел.

Определены знаковые типы:

Тип Минимум Максимум int8 -(2 в степени 7) = -128 (2 в степени 7) - 1 = int16 -(2 в степени 15) = -32768 (2 в степени 15) - 1 = int32 -(2 в степени 31) (2 в степени 31) - Определены беззнаковые типы:

Тип Минимум Максимум uint8 0 (2 в степени 8) - 1 = uint16 0 (2 в степени 16) - 1 = uint32 0 (2 в степени 32) - В Scilab все числа комплексные, они состоят из вещественной части Real и мнимой части Imag, которая снабжается символом мнимой единицы (квадратный корень из -1). Для обозначения мнимой единицы используются символ %i.

Для создания комплексных чисел можно использовать оператор ввода Z = Real + Imag*%i. Символ мнимой единицы вводится после значения мнимой части со знаком операции умножения.

Для значений, которые не являются числами, в Scilab используется специальное значение %nan (Not a Number), что означает не число. Пример использования: в операции %inf / %inf есть нераскрытая неопределенность, численного ответа указать нельзя. При выводе численных данных используются форматы, удобные пользователю:

4.11.2. Логические типы Тип logical (логический) применяется в условных операторах и для логической индексации массивов. Он имеет два состояния true (истина) и false (ложь), которые используют числа 1 и 0, соответственно. Для создания массивов логического типа применяются значения %t и %f в операторе ввода.

Для логической индексации массивов предназначены функции:

Функция Описание whos (x) Кто это? Возвращает значение и тип для х.

who (x) 4.11.3. Символы и строки Строка (string) – одномерный массив символов. Фактически строка – это вектор с номерами кодов символов. Какие символы будут отображаться на экране, зависит от используемого шрифта.

Если Вы используете двумерный массив символов (содержит набор строк), то строки должны быть одинаковой длины.

Причина – двумерный массив должен быть прямоугольным.

При работе со строками разной длины нужно использовать массив ячеек. В этом случае каждая строка помещается в свою ячейку массива. Вы можете массив строковых ячеек преобразовать в массив строк, используя функцию cellstr. Она анализирует строки в ячейках, определяет максимальную длину и добавляет пробелы в короткие строки, чтобы получить строки одинаковой длины.

Для преобразования численных значений в строки предназначены функции:

Функция Описание Пример dec2hex Преобразует положительные числа в 16-ричные символы. [72 10] = ’48 A’ uintN N=8, 16, 32 или 64. Преобразует символы в числа. ‘Hi’ = [72 105] 4.11.4. Даты и время Для получения текущих значений даты и времени предназначена функция:

Функция Описание date Возвращает строку с текущей датой.

4.11.5. Структуры В Scilab структура – это контейнер данных, содержащий поля, в которые можно поместить любые данные. Если в поле структуры помещается другая структура, то получаются ветвящиеся структуры.

Поле структуры идентифицируется, как Имя структуры.Имя поля уровня 1. Имя поля уровня 2.

Структура может быть массивом. Например:

Persons. Массив персон.

person1. Персона 1.

name. Имя.

family. фамилия.

country. Гражданство.

person2.

name.

family.

country.

Для создания структур можно использовать операторы и функции.

Пример 1. Использование операторов. Пример 2. Использованием функции struct.

person1.name = 'Иван';

person1 = struct('name','Иван',...

person1.family = 'Петров';

'family','Петров',...

person1.country = 'Россия' 'country','Россия') person2.name = 'John';

person2 = struct('name','John',...

person2.family = 'Smith';

'family','Smith',...

person2.country = 'USA' 'country','USA') Результат в командном окне: Результат в командном окне:

person1 = person1 = name: 'Иван' name: 'Иван' family: 'Петров' family: 'Петров' country: 'Россия' country: 'Россия' person2 = person2 = name: 'John' name: 'John' family: 'Smith' family: 'Smith' country: 'USA' country: 'USA' 4.11.6. Массивы ячеек Массив ячеек — наиболее сложный тип данных в системе Scilab. Это массив, элементами которого являются ячейки, содержащие любые типы массивов, включая массивы ячеек. Отличительным атрибутом массивов ячеек является задание содержимого последних в фигурных скобках {}. Создавать массивы ячеек можно с помощью оператора присваивания.

Пример. Массив 2х2 ячеек и функция cell X=cell(2,2);

X(1,1).entries={'No smoking!'};

X(1,2).entries ={[1 2]};

X(2,2).entries ={2+3*%i};

Результат в командном окне:

X= !"No smoking!" [1,2] !

! !

!{} 2+%i*3 !

4.12. Программирование sce-файлов 4.12.1. Работа с sce-файлами Для создания sce-файла нужно его запрограммировать. Это можно сделать двумя способами:

В любом текстовом редакторе.

Во встроенном редакторе Scilab. Рекомендуется использовать этот способ, так как этот редактор обеспечивает визуальную поддержку программирования, а также совмещен с отладчиком.

В sce-файл можно добавить справку в виде строк комментария.

В Scilab определены два типа sce-файлов:

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

Функции. Используются для создания своих собственных функций. Могут получать входные аргументы, возвращают результаты. Сохраняют переменные в рабочей области, выделенной под функцию, из внешнего мира они не доступны.

sce-файл функции должен иметь особую внутреннюю структуру:

Первая строка – определение функции function [Вектор возвращаемых значений] = ИмяФункции(аргументы) Строки кода функции Подфункции, если есть Описываются аналогично основной функции. В коде основной функции подфункции могут употребляться.

4.13. Редактор/Отладчик (Editor/Debugger) Это инструмент для создания, редактирования и отладки sce-файлов на языке Scilab. Вызов редактора:

editor в командной строке, Пункт Editor из меню.

Команда приводит к появлению окна редактора. Новый файл имеет по умолчанию имя: Untitled - Безымянный.

Рекомендуются семантические имена.

Для работы с ним файл надо сохранить под уникальным именем, используя команду File=Save as… Для сохраненного файла доступна команда исполнения Execute=Load into Scilab.. После сохранения файла в заголовке появится путь к нему.

В окне редактора находятся:

Стандартная строка заголовка.

Меню. Редактор может работать одновременно с несколькими sce-файлами.

Рабочее поле. В рабочем поле вводятся коды команд. Редактор обеспечивает цветовое выделение фрагментов кода (комментарий, строки и др.) Статусная строка. В ней отображается тип позиция курсора - Line: номер строки, Column: номер столбца.

4.13.1. Пункт File (Файл) Файл Новый Открыть Открыть в подокне рядом (по вертикали или горизонтали) Открыть исходник из задаваемого пути… Сохранить Сохранить как Сохранить все Реверс ----------------------------- Импорт MATLAB файла ----------------------------- Создать справку… Компилировать как страницу справки ------------------------------ Открыть исходник функции ------------------------------ Установка принтера Печать ----------------------------- Список последних файлов ----------------------------- Закрыть файл Выход из Scilab Редактор использует много параметров по умолчанию. Их можно изменить командой «Options», которая выводит окно параметров с выделением параметров для редактора/отладчика. В окне можно выбрать:

Редактор, по умолчанию встроенный редактор Scilab.

Длину списка последних файлов, по умолчанию 4.

Флаги правил открытия файлов.

Флаги правил автоматического изменения файлов.

Изменять эти параметры нецелесообразно.

4.13.2. Пункт Edit (Правка) Правка Отменить Повторить отмененное ---------------------------- Вырезать Вырезать блок Копировать Вставить Вставить блок Удалить --------------------------- Выделить все --------------------------- Выделение = комментарий Выделение = не комментарий --------------------------- Увеличить отступ (на шаг табуляции) Уменьшить отступ (на шаг табуляции) 4.13.3. Пункт Search (Поиск) Поиск Найти… Найти дальше Заменить… Идти к строке 4.13.4. Пункт Execute (Исполнить) Исполнить Загрузить в Scilab Вычислить выделенное (ответ в командном окне) 4.13.5. Пункт Debug (Отладка) Пункт содержит команды работы с массивами ячеек. Перед их использованием нужно исполнить первую команду пункта – включение режима редактирования ячеек.

Отладка Ввести/удалить точку останова Удалить все точки останова ---------------------- Конфигурация исполнения --------------------- Прогон до следующей точки останова По шагам Прогон до точки возврата Прогон до курсора Прогон с игнорированием точек останова --------------------- Показать наблюдаемые переменные --------------------- Останов Стирание отладки 4.13.6. Пункт Scheme (Схема) Схема Язык Scilab Язык XML Простой текст ------------------ Расцветка по семантике 4.13.7. Пункт Options (Опции) Опции Шрифт Цвета семантики Расцветка, как применить Номера строк, место отображения Перенос слов в следующую строку Стиль реакции на двойной щелчок (Scilab, Windows, Linux) Табуляция и отступы Завершение, на какое событие Имена файлов, как отображать Сортировка в меню Последние файлы, сколько Число резервных копий Выбор языка (русского нет) Стиль связывания (pc или emac) Ошибки исполнения (командное окно, окно ошибок) Команды трассировки доступны только при наличии точек останова.

4.13.8. Пункт Windows (Окна) Окна Максимизация, один документ в окне Каскадное размещение Размещение сверху/снизу Размещение слева/справа С обрамлением ------------------------- Список окон 4.13.9. Пункт Help (Справка) Справка Справка, вызов браузера Что это? Вызов браузера с поиском выделенного О программе ------------------------- Добавить переводы для Scipad Дефекты и пожелания, куда сообщить Журнал изменений в версии 4.13.10. Режим редактирования и отладки Редактор по мере ввода текста программы осуществляет синтаксический контроль. Результаты контроля отображаются цветовыми выделениями. Цвета можно изменить на любые. По умолчанию приняты наиболее часто используемые цвета.

Для иерархического позиционирования операторов, таких как циклы, вложенные операторы и др. применяются отступы.

Для ввода текстовых пояснений применяются комментарии, которые интерпретатор игнорирует. Комментарий начинается со знака ( // ). Комментарий выделяется цветом (зеленый). Допустимы комментарии в конце строки. Строки текста можно превращать в комментарий и обратно.

Перед отладкой файл нужно сохранить, чтобы зафиксировать сделанные в нем изменения. Точки останова можно вводить после сохранения файла. Перечень доступных команд зависит от режима работы редактора.

4.14. Ввод и вывод данных 4.14.1. Импорт и экспорт данных Scilab может работать со следующими форматами файлов:

Формат файла Содержимое файла Расширение Scilab Рабочая область Scilab.mat Текст любое XML Текст, форматированный в XML.xml Звук NeXT/Sun.au Microsoft Wave.wav Видеоклип Звук, видео.avi Научные данные CDF – Common Data Format.cdf FITS – Flexible Image Nransport System.fits NDF – Nierarchical Data Format.hdf Электронные таблицы Excel.xls Lotus 123.wkl Графика TIFF.tiff PNG.png HDF.hdf BMP.bmp JPEG.jpg GIF.gif PCX.pcx XWD.xwd Cursor.cur Icon.ico В Scilab есть несколько способов загрузки файлов с диска в рабочую область. Самый простой - мастер импорта, пользователю нужно в диалоге выбирать предлагаемые действия.

4.14.2. Диалоговый ввод Диалоговый ввод осуществляется функцией input(‘строка приглашения’,’s’). Она выводит в командное окно текст с приглашением. Если нужно ввести численное значение, то после ввода текстового представления нужно его преобразовать в число.

Пример 1. Ввод в виде строки. Функция input включает Пример 2. Вычисление с введенным значением. Функция приглашение и тип запрашиваемых данных - строка. input включает приглашение и тип запрашиваемых данных Введенное значение присваивается переменной x. – строка. Введенное значение присваивается переменной r. Затем строка r функцией evstr(r) преобразуется в число --x=input("What is your name?","string") R, по которому вычисляется площадь окружности S.

What is your name?--Edward --r= input('Radius: ','r');

x= Edward Radius:

-- --R=evstr(r) R= 5.

--S=%pi*R^ S= 78. 4.14.3. Вывод данных Вывод данных осуществляется функцией disp(Данные). Выводит любые данные в командное окно.

--disp('It is message') It is message --disp(%pi) 3. 5. Scilab, основы графики 5.1. Анатомия графики В Scilab для создания графики используются:

Простой инструментарий графического интерфейса пользователя – ГИП (Graphic User Interface - GUI) и диалоги.

Графическая библиотека. Содержит набор функций высокого и низкого уровня.

Графический редактор. Доступны две версии, старая и новая. Старая версия позволяет накладывать на нарисованный график дополнительные компоненты. Новая версия содержит встроенные средства редактирования свойств для всех объектов, использованных в графике, в стиле ГИП.

В функциях графики используются свойства:

Локальные. Они используются в текущем графическом сеансе.

Глобальные. Они, употребленные один раз, действуют во всех остальных сеансах.

5.2. Глобальные свойства Эти свойства используются в функциях рисования при создании графиков и поверхностей. Одни и те же свойства используются разными объектами. По умолчанию для каждого свойства принимаются наиболее часто употребляемые значения.

Свойство Описание CData Вещественная матрица, определяющая цвета Z=f(x,y).

ColorData Используется только при рисовании поверхностей.

CDataMapping Каждой вершине поверхности присваивается индекс цвета, определяемый Z. Способ раскраски ColorDataMapping поверхности определяется строковыми значениями, которые используются только в функции fac3d в режимах с color_flag = 2, 3, 4. Возможны значения:

'scaled'. Цвет масштабируется по текущей карте цветов colormap.

‘direct’. Цвет точки ближайший из текущей карты цветов colormap.

Функция plot3d использует только ‘direct'.

Clipping Способ обрезания графика. Возможные значения:

‘on’. Объекты обрезаются за пределами области clip_box.

‘off’. Объекты не обрезаются ‘сlipgrf’. Объекты обрезаются за пределами axes.

Color Цвет линии.

Foreground EdgeColor При color_mode = 0 хранит цвет линий каркаса поверхности. Это целое число из индексов Foreground color_map.

FaceColor Цвет лица поверхности. Значения:

‘none’, нет, рисуется только каркас.

‘flat’, плоская, одноцветные грани.

‘interp’, интерполяция, затенение у вершин.

LineStyle Стиль линии. Целое число от 1 до 6. Определены:

1 – solid, сплошная, по умолчанию.

2 - dash, штрих.

3 – dash dot, точки.

4 – longdash dot, штрих + точка.

5 – bigdash dot, штрих + 2 точки.

6 – bigdash longdash, штрих + 2 точки.

Marker Стиль маркера: dot – точка, star –звезда, square – квадрат и др. Всего 16 символов.

MarkStyle По умолчанию маркер не отображается.

MarkerEdgeColor Цвет переднего плана (контур) маркера.

MarkerForeground MarkerFaceColor Цвет заднего плана (заливка) маркера.

MarkerBackground MarkerSize Размер маркера. Целое число от 0 до 5, которым соответствуют размеры 8pt, 10pt, 12pt, 14pt, 18pt, MarkSize 24pt.

Visible Видимость.

Значения ‘on’ (да), ‘off’(нет). По умолчанию ‘on’.

X data Вектор или матрица значений Х.

Y data Вектор или матрица значений Y.

Z data Матрица значений Z.

Спецификаторы знака маркера Коротко Полно Название Коротко Полно Название + плюс ^ треугольник вверх o окружность v треугольник вниз * звездочка треугольник вправо. точка треугольник влево x крест p pentagram пятиугольник s square квадрат h hexagram шестиугольник d diamond ромб none нет (по умолчанию) 5.3. Графическая библиотека В Scilab используется объектно-ориентированное программирование (ООП), при котором все объекты графики образуют иерархическую структуру. Объекты потомки наследуют свойства и методы у объектов предков.

Графическая библиотека содержит около 100 функций, которые разделены на категории:

2d plotting – двумерные графики.

3d plotting – трехмерные графики.

Line and poligon – линии и многоугольники.

Rectangle – прямоугольники.

Arc – дуги эллипса.

Arrow - стрелки Strings – строки.

Frame and axes – кадры и оси.

Coordinate transformation – преобразование координат.

Colors – цвета.

Graphic context – графический контекст.

Save and load - сохранение и загрузка.

Graphic primitives –графические примитивы.

Mouse position –позиция мыши.

Interactive editor – интерактивный редактор.

Graphic functions for automatic control – графические функции для автоматического управления.

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

Пользователь может воспользоваться и командами низкоуровневой (дескрипторной) графики, которые дают прямой доступ к данным объекта.

5.4. Инструментарий ГИП Инструментарий ГИП поддерживает более простой способ отображения графиков, основанный на использовании интерфейса Tcl/Tk (Tools Comand Language / ). В этом интерфейсе инструментальные средства графики отображаются в автономном окне, которое именуется объектом Figure. Для создания окна используется команда F=figure(). Она создает автономное окно графики с именем objfigure 1.

Имя окна можно изменить командой set(F,'figure_name','Новое имя’). При повторном использовании команды создаются окна со следующими номерами.

Инструментарий ГИП содержит около 50 функций, которые разделены на 2 категории:

GUI and dialogs – ГИП и диалоги.

Tcl/Tk interface – Tcl/Tk интерфайс..

5.5. Графические объекты Scilab Графические объекты образуют иерархическую структуру:

Root Уровень 1 Уровень 2 Уровень 3 Корневой объект – экран компьютера.

Figure Графическое окно.

Axes. Координатные оси (X,Y или X,Y,Z).

В объекте Figure их может быть несколько, как подокна.

Compound Композитный объект. Содержат объединенные объекты.

Polyline Полилиния (кусочно-ломанная линия).

Rectangle Прямоугольник.

Arc Дуга эллипса.

Segs Множество сегментов или закрашенных стрелок.

Grayplot 2D график поверхности с раскраской или изображения.

Surface Поверхность.

FEC 2D рисунок из конечного числа элементов Text Текст.

param3d 3D кривая Внимание! Имена объектов в документации Scilab начинают с заглавной буквы. Функции же всегда пишутся строчными буквами. Например:

Figure – имя объекта, figure – имя функции, создающей объект Figure.

5.5.1. Root Объект Root (корень) – виртуальный объект. Пользователю обращаться к нему не надо. Он используется ядром Scilab для получения свойств экрана компьютера для правильного отображения графиков.

Свойство Описание Children Дочерние объекты. Значение – вектор строк. Возможны несколько ‘figure’.

screensize_px Размеры экрана в пикселях.

screensize_pt Размеры экрана в точках.

screensize_mm Размеры экрана в миллиметрах.

screensize_cm Размеры экрана в сантиметрах.

screensize_in Размеры экрана в дюймах.

screensize_norm Размеры экрана нормализованные.

screendepth Число бит, используемых для кодирования цвета.

5.5.2. Figure Объекта Figure (фигура) – графическое окно. Это корневой объект иерархии.

Свойство Описание Parent Children Дочерние объекты. Значение – вектор строк. Возможны несколько ‘axes’.

Figure_style Стиль. Значения:

‘old’ – старый, ‘new’ - новый.

По умолчанию ‘new’.

Figure_position Положение на экране дисплея в пикселях.

Задается вектором [x, y], это координаты левого верхнего угла.

Figure_size Размер. Задается в пикселях вектором [width, height]:

width – ширина, height – высота.

Auto_resize Автоматический подбор размера вложенных объектов при изменении размеров окна.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Figure name Имя объекта Figure. Это строка, располагающаяся в заголовке окна.

Figure_id Идентификатор figure. Номер - целое число.

Colormap Карта из m цветов. Каждый цвет – взвешенная сумма цветов R (красный), G (зеленый), B (синий).

Веса от 0 до 1.

Pixmap Режим пиксельной карты. В этом режиме картинка отображается специальной функцией.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘off’.

Pixel_drawing_mode Режим прорисовки писелей. В операции участвуют src (источник) и dst (получатель). Возможны:

‘clear’ – очистить, dst = 0.

‘and’ – логическое «И», dst = src AND dst.

‘andReverse’ – логическое «И» src с инверсией dst, dst = src AND (NOT dst).

‘copy’ - копирование, dst = src.

‘andInverted’– логическое «И» инверсии src с dst, dst = (NOT src) AND dst.

‘noop’– нет операции, dst = dst.

‘xor’– логическое «исключающее ИЛИ», dst = src XOR dst.

‘or’– логическое «ИЛИ», dst = src OR dst.

‘nor’– логическое «НЕ-ИЛИ», dst = NOT(src OR dst).

‘equiv’– логическое «’эквивалентность», dst = (NOT src) XOR (dst).

‘Invert’– логическое «НЕТ», dst = NOT dst.

‘orReverse’– логическое «ИЛИ» src с инверсией dst, dst = src OR (NOT dst).

‘copyInverted’ – копировать инверсию src, dst = NOT src.

‘orInverted’– логическое «ИЛИ» инверсии src с dst, dst = (NOT src) OR dst.

‘nand’– логическое «НЕ-И», dst = NOT( src AND dst).

‘set’ – установить, dst = 1.

По умолчанию ‘copy’.

Immediate_drawing Немедленное рисование.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

При ‘off’’ рисование задерживается. Например, для подготовки нескольких рисунков.

Background Цвет заднего плана. Выбирается по номеру из colormap.

Свойства дочерних объектов Visible Видимость. Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Rotation_style Cтиль вращения для 3D объекта. Выбрать из списка:

unary (вращения нет), multiple (вращение возможно).

5.5.3. Axes Объект Axes (оси) – область для рисования 2d или 3d графика. Дочерний объект в Figure для отображения там графиков. В нем задается размещение каждой точки с помощью трех осей x, y, z. Это объект второго уровня иерархии.

Свойство Описание Parent ‘figure’ с номером.

Children Дочерние объекты. Значение – вектор строк. Возможны:

‘compound’ - группа, ‘rectangle’ – прямоугольник, ‘polyline’ –полилиния, ‘segs’ – множество несоединенных сегментов, ‘arc’ – дуга эллипса, ‘grayplot’ – 2d график поверхности с раскраской или изображения, ‘surface’ – поверхность, ‘param3d’ – 3d кривая, ‘fec’ – 2d рисунок из конечного числа элементов, ‘text’ – текст, ‘legend’ – легенда, ‘champ’ – 2d векторное поле.

Visible Видимость. Значения ‘on’ (да), ‘off’ (нет) По умолчанию ‘on’.

Axes_visible Видимость координатных осей. Вектор 1х3 из строк ‘on’ (да) или ‘off’ (нет).

По умолчанию все ‘on’.

Axes_reverse Инверсия осей. Вектор 1х3 из строк ‘on’ (да) или ‘off’ (нет).

Значение ‘on’ означает инверсию направления оси.

По умолчанию все ‘off’’.

Grid Координатная сетка. Вектор [x-grid,y-grid,z-grid].

Значения 1 (да), -1 (нет). По умолчанию -1.

Значение 1 означает отображение линий сетки.

X_location Размещение оси Х c масштабными метками. Возможные значения:

Bottom – внизу.

Top – вверху.

Middle – в середине.

Y_location Размещение оси Y c масштабными метками. Возможные значения:

Left – слева.

Right – справа.

Middle – в середине.

Title Название. Это текст, располагающийся над axes.

X_Label Название оси X. Это текст, располагающийся около оси X.

Y_Label Название оси Y. Это текст, располагающийся около оси Y.

Z_Label Название оси Z Это текст, располагающийся около оси Z.

Auto_tics Автозасечки на осях. Вектор [x_tics,y_tics,z_tics].

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘off’.

Значение ’on’ приводит к отображению засечек.

X_tics_location Размещение засечек оси Х. Вектор вещественных чисел с местами засечек.

Y_tics_location Размещение засечек осиY. Вектор вещественных чисел с местами засечек.

Z_tics_location Размещение засечек оси Z. Вектор вещественных чисел с местами засечек.

X_tics_label Метки засечек оси Х. Вектор строк с метками засечек.

Y_tics_label Метки засечек осиY. Вектор строк с метками засечек.

Z_tics_label Метки засечек оси Z. Вектор строк с метками засечек.

Box Помещает axes в бокс.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Sub_tics Число засечек между главными засечками на осях X, Y.

Вектор [nx, ny].

Font_style Стиль шрифта меток засечек.

Font_color Цвет шрифта меток засечек.

Isoview Изометрический (с одинаковым масштабом по осям) вид 3D изображения.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ’off’.

View Флаг вида. Значения ‘2d’, ‘3d’.

Rotation angle Угол поворота 3D объекта в сферических координатах в градусах.

Вектор [alpha, theta].

Log_flags Флаги логарифмического масштаба. Строка из трех символов для осей X, Y,Z.

Значения символов: ‘n’ – линейный масштаб, ‘ l‘– логарифмический.

По умолчанию ‘nnn’.

Tight limits Пределы сжатия. В этом режиме axes точно подгоняется под диапазон данных.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘off’.

Data_bounds Границы данных.

Матрица 2х2 или 2х3. Первая строка - минимальные значения, вторая - максимальные значения.

Margins Поля axes от границ рисунка в долях от размеров axes.

Вектор из 4 чисел от 0 до 1. По умолчанию каждое 0.125.

Axes_boundes Границы axes.Вектор чисел [x_left, y_up, width, height].

x_left, y_up – координаты левого верхнего угла, width - ширина, height - высота.

Свойства для функций высокого уровня:

Свойство Описание Auto_clear Авто очистка. Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘off’’.

Если ‘on’, то новое заменяет старое, если ‘off’, то новое добавляется.

Auto_scale Авто масштаб. Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Если ‘on’, то новое масштабируется под старое, если ‘off’, то новое добавляется.

Свойства по умолчанию для дочерних объектов:

Свойство Описание Hidden_color Цвет скрытых объектов. Например, нижних граней поверхностей.

Line_mode Режим линии. Для объектов с линиями - Segs, Arcs, Rectangle, Polyline.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’. При ‘on” линия рисуется.

Line style Стиль линии. Для объектов с линиями - Segs, Arcs, Rectangle, Polyline.

Выбирается из списка. По умолчанию ‘solid’ - сплошная.

Thickness Толщина линий всех рисуемых объектов. Целое число.

Mark_mode Видимость маркера. Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘off’.

Mark_style Стиль маркера. Целое число от 0 до 9 для определения символа маркера.

Mark_size_unit Способ задания размера маркера. Значения:

‘point’ – размер задается в точках, ‘tabulated’ – размер вычисляется по размеру шрифта.

Mark_size Размер маркера. Целое число от 0 до 5, которым соответствуют размеры 8pt, 10pt, 12pt, 14pt, 18pt, 24pt.

Mark_foreground Цвет переднего плана (контур) маркера.

Mark_background Цвет заднего плана (заливка) маркера.

Foreground Цвет переднего плана axes по умолчанию.

Background Цвет заднего плана axes по умолчанию.

Clip_box: Координаты области урезания [x,y,w,h]:

x, y – левый верхний угол, w – ширина, h – высота.

Clip_state Способ урезания. Возможные значения:

‘on’. Объекты урезаются за пределами области clip_box.

‘off’. Объекты не урезаются ‘сlipgrf’. Объекты урезаются за пределами axes.

5.5.4. Compound Объект Compound – составной объект. Это объект третьего уровня иерархии. Может включать в себя другой объект Compound и объекты нижнего уровня иерархии.

Свойство Описание Parent ‘axes’, ‘compound’.

Children Дочерние объекты. Значение – вектор строк. Возможны:

‘compound’ - группа, ‘rectangle’ – прямоугольник, ‘polyline’ –полилиния, ‘segs’ – множество несоединенных сегментов, ‘arc’ – дуги эллипса, ‘grayplot’ – 2d график поверхности с раскраской или изображения, ‘surface’ – поверхность, ‘param3d’ – 3d кривая, ‘fec’ – 2d рисунок из конечного числа элементов, ‘text’ – текст, ‘legend’ – легенда, ‘champ’ – 2d векторное поле.


Для объекта Compound можно изменять только Visible (видимость) установкой флага.

5.5.5. Axis Объект Axis – ось.

Свойство Описание Parent ‘axes’, ‘compound’.

Tics_direction Направление засечек. Возможны значения:

Горизонтальная ось:. ‘top’ (вверх), ‘bottom’ (вниз). По умолчанию ‘top’.

Вертикальная ось: ‘left’ (влево), ‘right’ (вправо). По умолчанию ‘right’.

XTics_coord X координаты. Вектор значений.

XTics_coord Y координаты. Вектор значений.

Tics_color Цвет оси и засечек.

Tics_segment Флаг, определяющий отображение базового сегмента оси.

Возможные значения ‘on’ (да) ‘off’ (нет). По умолчанию ‘on’.

Tics_style Стиль засечек. Строка с флагами. Возможные значения символов флага:

‘v’. Выбираются XTics_coord и XTics_coord. Это режим по умолчанию.

‘r’. Выбираются по вектору [min, max, n]. Число интервалов n.

‘I’. Выбираются по вектору [k1, k2, a, n] от k1*10^a до k2*10^a. Число интервалов n.

Sub_tics Число засечек между двумя главными засечками.

Tics_label Матрица строк с символами, которые прорисовываются вдоль оси в позициях засечек.

Labels_font_color Цвет шрифта меток засечек.

Labels_font_size Размер шрифта меток засечек.

5.5.6. Polyline Объект Polyline – полилиния (кусочно-ломанная линия) по данным о точках, через которые она проходит.

Свойство Описание Parent ‘axes’, ‘compound’.

Data Данные X, Y, Z.

Closed Начало и конец линии соединить прямой линией.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию свой для разных примитивов.

Line_mode Режим линии. Показывать или нет Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Fill_mode Режим заливки цветом фона для замкнутой линии.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Line_style Стиль линии. Целое число от 1 до 6. Определены:

1 – solid, сплошная, по умолчанию.

2 - dash, штрих.

3 – dash dot, точки.

4 – longdash dot, штрих + точка.

5 – bigdash dot, штрих + 2 точки.

6 – bigdash longdash, штрих + 2 точки.

Thickness Толщина линии. Положительное целое число.

Arrow_size_factor Толщина стрелки на линии. Фактическая толщина вычисляется умножением параметра на Thickness.

Polyine_style Стиль линии. Целое число от 1 до 6. Определены:

1 – ‘interpolated’- интерполированная, 2 – ‘staircase’ - ступенчатая, 3 – ‘barplot ‘– вертикальные полоски, 4 – ‘arrowed’ – со стрелками, 5 – ‘filled’ – залитая для замкнутой линии, 6 – ‘bar’ – линия в стиле MATLAB (с шириной).

Foreground Цвет линии.

Background Цвет заливки фона для замкнутой линии. При включенном режиме заливки.

Interp_color_vector Вектор цветов, используемых при заливке.

Interp_color_mode Сглаживание при заливке с интерполяцией.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Mark_mode Режим маркеров. Показывать или нет маркеры в рассчитанных точках.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘off’.

Mark_ style Стиль маркера: dot – точка, star –звезда, square – квадрат и др.

Mark_size_unit Способ задания размера маркера. Значения:

‘point’ – размер задается в точках, ‘tabulated’ – размер вычисляется по размеру шрифта.

Mark_size Размер маркера. Целое число от 0 до 5, которым соответствуют размеры 8pt, 10pt, 12pt, 14pt, 18pt, 24pt.

Mark_foreground Цвет переднего плана (контур) маркера.

Mark_background Цвет заднего плана (заливка) маркера.

Спецификаторы стиля линии Символы Стиль линии - Тире (по умолчанию) Сплошная : Вертикальное двоеточие Двойной пунктир -. Тире + точка Штрих-пунктир -- Тире + Тире Штриховая 5.5.7. Arc Объект Arc – дуга эллипса. Объект использует линии, поэтому его свойства почти совпадают со свойствами объекта ‘polypine’. Иначе описываются данные Data.

Свойство Описание Parent ‘axes’, ‘compound’.

Data Область, в которую вписывается объект:

x, y - координаты верхнего левого угла в долях от 0 до 1, w –ширина в долях от 0 до 1, h - высота в долях от 0 до 1, a1, a2 - начальный и конечный углы в градусах*64.

5.5.8. Rectangle Объект Rectangle - прямоугольник. Объект использует линии, поэтому его свойства почти совпадают со свойствами объекта ‘polypine’. Иначе описываются данные Data.

Свойство Описание Parent ‘axes’, ‘compound’.

Data Область, в которую вписывается объект (для 3D версии):

xleft –координата X левой грани в долях от 0 до 1, yup – координата Y верхней грани в долях от 0 до 1, zup - координата Z верхней грани в долях от 0 до 1, width –ширина в долях от 0 до 1, height - высота в долях от 0 до 1.

Для 2D версии без Z.

5.5.9. Grayplot Объект Grayplot – 2d график, использующий цвета и изображения.

Свойство Описание Parent ‘axes’.

Data Матрица Z(X,Y) пикселей плоской картинки.

5.5.10. Surface Объект Surface – 3d график поверхности. Это объект нижнего уровня иерархии.

Свойство Описание Parent ‘axes’, ‘compound’.

Surface_mode Режим поверхности. Содержит ‘visible’ по умолчанию. Показывать или нет Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘on’.

Foreground При color_mode = 0 хранит цвет линий каркаса. Это целое число из индексов color_map.

Color_mode Цвет поверхности, выбирается по индексу из color_map. Алгоритм:

Color_mode = 0. Каркас рисуется, грани без цвета.

Color_mode 0. Каркас рисуется, грани с одинаковым цветом.

Color_mode 0. Каркас не рисуется, грани с одинаковым цветом Используется при Color_flag = 0.

Color_flag Флаг цвета. Определяет алгоритм раскраски граней. Значения Color_flag = 0. Правила из 'color_mode’. Используется по умолчанию.

Color_flag = 1. Каркас рисуется Одноцветная окраска каждой грани.

Color_flag = 2. То же, что 1, + затенение.

Color_flag = 3. Интерполяция цвета в пределах грани + затенение.

Color_flag = 4. То же, что 2, но в стиле MATLAB.

Hidden_ color Индекс цвета скрытых объектов.

Thickness Толщина линий каркаса.

Mark_mode Режим маркеров. Показывать или нет маркеры в рассчитанных точках.

Значения ‘on’ (да), ‘off’ (нет). По умолчанию ‘off’.

Mark_ style Стиль маркера: dot – точка, star –звезда, square – квадрат и др.

Mark_size_unit Способ задания размера маркера. Значения:

‘point’ – размер задается в точках, ‘tabulated’ – размер вычисляется по размеру шрифта.

Mark_size Размер маркера. Целое число от 0 до 5, которым соответствуют размеры 8pt, 10pt, 12pt, 14pt, 18pt, 24pt.

Mark_foreground Цвет переднего плана (контур) маркера.

Mark_background Цвет заднего плана (заливка) маркера.

Data Данные о точках, по которые строится поверхность.

5.5.11. Champ Объект Champ – векторное поле. Каждый вектор - линия со стрелками с разными позициями, ориентацией и цветом, размещенная в обрамляющем прямоугольнике.

Свойство Описание Parent Axes, Compound.

Arrow size Размер стрелки.

Colored Раскрашенность.

Значения ‘on’ (да), ‘off’(нет). По умолчанию ‘off’.

Data Данные о координатах точек, в которых начинаются стрелки.

5.5.12. Segs Объект Segs – сегменты. Это множество однотипных несоединенных объектов. Тип объекта определяется функцией, используемой для их рисования:

Свойство Описание Data Матрица с двумя или тремя столбцами для координат границ сегментов.

5.5.13. Text Объект Text – рисуемый текст, строки символов.

Свойство Описание Parent ‘axes’, ‘compound’.

Box Бокс, обрамляющий текст.

Значения ‘on’ (да), ‘off’(нет). По умолчанию ‘off’.

Text Это вектор строк текста.

Спецификаторы цвета 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 черный [z z z] Для произвольного цвета z = 0…1.

5.5.14. Label Объект Label – метка. Используется в объекте axes для именования титула и осей.

Свойство Описание Parent ‘axes’.

Text Это вектор строк текста, помещаемых в метку.

Position 2d вектор, задающий позицию метки на экране.

Auto_position Автоматическое позиционирование..

Значения ‘on’ (да), ‘off’(нет). По умолчанию ‘on’.

5.5.15. Legend Объект Legend – легенда. Это рамка, в которой отображаются все линии графика в своих стилях и текстовые их пояснения.

Свойство Описание Parent ‘compound’.

Text Это вектор строк текста, помещаемых в легенду.

5.6. Функции рисования высокого уровня Эти функции осуществляют:

Создание объекта Figure с очередным номером (если его нет). Для этого внутри функции применяется функция scf().

Создание объектов Axes в объекте Figure.

Масштабирование данных по осям.

Рисование графиков в объекте Axes.

Функции при исполнении вызывают графические функции низкого уровня.

Созданный рисунок затем может интерактивно редактироваться встроенным редактором.

5.7. Графика 2D 5.7.1. Функция plot Функция plot рисует несколько функций разных переменных. Способ вызова:

plot(xi, y1,LineSpec,x2,y2, LineSpec,…) LineSpec - опциональный аргумент, определяющий стиль рисуемой кривой. По умолчанию выбирается автоматически:

5.7.2. Функция subplot Функция subplot применяется для создания в объекте Figure подокон. Вывод графиков в подокнах применяется для одновременного наблюдения связанных графиков без наложения друг на друга. Функция создает в текущем рисунке один из множества объектов axes. Их количество и расположение задается матрицей из m строк и n столбцов.

Вызов функции: subplot(m,n,p).

Здесь p – текущий номер создаваемого объекта axes. Дальнейшие действия касаются этого объекта axes.


// Подокна a=0;

b=20;

h=0.1;

// Задание аргумента X=a:h:b;

// Расчет функций Y1=sin(X);

Y2=sin(X*2);

Y3=cos(X);

Y4=cos(X*2);

//Вывод Y1 в подокно subplot(2,2,1);

plot(X,Y1);

xgrid() //Включить координатную сетку // Вывод Y2 в подокно subplot(2,2,2);

plot(X,Y2);

xgrid() //Включить координатную сетку // Вывод Y3 в подокно subplot(2,2,3);

plot(X,Y3);

xgrid() //Включить координатную сетку // Вывод Y4 в подокно subplot(2,2,4);

plot(X,Y4);

xgrid() //Включить координатную сетку Ниже окно свойств объектов графика в редакторе.

5.7.3. Функция plot2d Функция plot2d рисует множество функций y только одного аргумента [x] – вектор значений. Способы вызова:

plot2d([x], y) plot2d([x], y,opt_args) opt_args - последовательность инструкций вида key=value (ключ = значение), возможные key:

style Стиль каждой кривой. Значения от 0 до 6.

rect Прямоугольник, минимальные размеры для графика. Это вектор [xmin,ymin,xmax,ymax] logflag Шкалы (нормальная или логарифмическая). Это строка со значениями ‘nn’, ‘nl’, ‘ln’, ‘ll’. В ней первый символ для оси X, второй для оси Y. Нормальная шкала - n, логарифмическая - l.

frameflag Способ вычисления масштаба по осям. Значения от 0 до 8:

frameflag = 0. Использовать предыдущий.

frameflag = 1. Взять из rect.

frameflag = 2. По отношениям min/max для осей.

frameflag = 3. Взять из rect и сделать одинаковым.

frameflag = 4. По отношениям min/max для осей и сделать одинаковым.

frameflag = 5. Взять из rect и изменить для размещения меток осей.

frameflag = 6. По отношениям min/max для осей и изменить для размещения меток осей.

frameflag = 7. Как для 1, но предыдущий график перерисовать в новом масштабе.

frameflag = 8. Как для 2, но предыдущий график перерисовать в новом масштабе.

axesflag Способ рисования axes. Значения от 0 до 5:

axesflag = 0. Пусто.

axesflag = 1. Axes и ось Y слева.

axesflag = 2. Добавить бокс с засечками.

axesflag = 3. Axes и ось Y справа.

axesflag = 4. Axes, центрированная в боксе.

axesflag = 5. Axes с осями, пересекающимися в точке (0, 0). Пусто, если такой точки в данных нет.

Множество меток для осей и засечек. Вектор [nx, Nx, ny, Ny]. Число засечек:

nax главных - Nx, Ny, промежуточных – nx, ny.

leg Множество легенд для кривых. Задается строкой 'leg1@leg2@...', где перечисляются надписи для кривых..

В примере работа функции иллюстрируется графиками, которые отображаются в разных окнах. Для создания новых окон графике использована функция scf().

// Функция plot2d t=0:100;

x=[-2*%pi:0.1:2*%pi]';

// диапазон х // Несколько графиков scf();

// Создать пустой график plot2d(x,[sin(x),cos(x)]);

// Рисование xgrid // Включить сетку // Ось Y справа scf();

// Создать пустой график a=gca();

// Указатель на оси a.y_location='right';

// Ось Y справа plot2d(x,sin(x));

// Рисование xgrid // Включить сетку // Оси X, Y центрированы (0,0) scf();

// Создать пустой график plot2d(x,sin(x));

// Рисование xgrid // Включить сетку a=gca();

// Указатель на оси a.x_location='middle';

// Оси центрированы a.y_location='middle';

// Несколько графиков с легендами scf();

// Создать пустой график plot2d(x,[sin(x),cos(x)],leg='Sin@Cos');

// Рисование xgrid // Включить сетку 5.7.4. Функция plot2d Функция plot2d2 аналогична plot2d, но рисует множество функций в виде ступенчатой полилинии.

// Функция plot2d x=[-2*%pi:0.1:2*%pi]';

// диапазон х plot2d2(x,sin(x));

// Рисование xgrid // Включить сетку 5.7.5. Функция plot2d Функция plot2d3 аналогична plot2d, но рисует множество функций в виде вертикальных линий.

// Функция plot2d x=[-2*%pi:0.1:2*%pi]';

// Диапазон х plot2d3(x,sin(x));

// Рисование 5.7.6. Функция plot2d Функция plot2d4 аналогична plot2d, но рисует множество функций в виде со стрелками.

// Функция plot2d x=[-2*%pi:0.1:2*%pi]';

// диапазон х plot2d4(x,sin(x));

// Рисование xgrid 5.7.7. Функция bar Функция bar аналогична plot2d3, но рисует множество функций в виде вертикальных полос.

// Функция bar x=[-2*%pi:0.1:2*%pi]';

// Диапазон х bar(x,sin(x));

// Рисование xgrid 5.7.8. Функция pie (круговая диаграмма) Функция pie рисует нормализованную круговую диаграмму для вектора х. Диаграмма для каждого x содержит сектор, угловой размер которого определяется значением x/sum(x). Рядом с сектором выводится размер в процентах или текст.

Для визуального выделения любому сектору можно задать выступ. Вызов функции:

pie(x,[вектор выступов],[вектор надписей) Аргументы функции:

x - вектор значений, [вектор выступов] – определяет размер выступа. Если 0, то выступа нет.

// Функция pie,торт // 1 входной аргумент scf(0);

pie([1,2,5]);

// Рисование // 2 входных аргумента scf(1);

pie([5,9,4],[0,1,0]);

// Рисование // 3 входных аргумента scf(2);

pie([3,4,6],[0,1,0],['part1','part2','part3']);

// Рисование 6. Графика 3D Определены функции:

Функция Описание plot3d Поверхность. По умолчанию с color_flag = 0.

plot3d1 Поверхность с линиями уровней. Это plot3d, но c color_flag = 1.

plot3d2 Поверхность. Используется функция fac3d. Color_flag = 0, 1, 2, 3, 4.

При Color_flag = 0, 1 совпадает с plot3d. Флаги 2, 3, 4 пока не работают.

plot3d3 Поверхность с прямоугольными гранями без закраски поверхности.

param3d 1 кривая в пространстве.

param3d1 Кривые в пространстве.

contour Контуры на 3d поверхности.

hist3d 3d представление гистограммы.

genfac3d Грани 3d поверхности.

geom3d Проекция 3d на 2d после рисования 3d.

6.1.1. Функция param3d Функция param3d рисует одну пространственную кривую.

// Функция param3d, пространственная кривая t=0:0.1:5*%pi;

param3d(sin(t),cos(t),t/10,35,45,"X@Y@Z",[2,3]) 6.1.2. Функция param3d Функция param3d рисует несколько пространственных кривых.

// Функция param3d1, пространственная кривая t=[0:0.1:5*%pi]';

param3d1([sin(t),sin(2*t)],[cos(t),cos(2*t)],..

list([t/10,sin(t)],[3,2]),35,45,"X@Y@Z",[2,3]) 6.2. Графика 3D 6.2.1. Функция plot3d // Функция plot3d t=[0:0.3:2*%pi]';

z=sin(t)*cos(t');

plot3d(t,t,z) 6.2.2. Функция plot3d plot3d1 - поверхность с линиями уровней. Это plot3d, но c color_flag = 1.

// Функция plot3d t=[0:0.3:2*%pi]';

z=sin(t)*cos(t');

plot3d1(t,t,z) 6.2.3. Функция plot3d // Функция plot3d u = linspace(-%pi/2,%pi/2,40);

v = linspace(0,2*%pi,20);

X = cos(u)'*cos(v);

Y = cos(u)'*sin(v);

Z = sin(u)'*ones(v);

plot3d2(X,Y,Z);

6.2.4. Функция plot3d Поверхность с прямоугольными гранями без закраски поверхности.

// Функция plot3d u = linspace(-%pi/2,%pi/2,40);

v = linspace(0,2*%pi,20);

X = cos(u)'*cos(v);

Y = cos(u)'*sin(v);

Z = sin(u)'*ones(v);

plot3d3(X,Y,Z);

6.2.5. Функция contour Контуры на 3d поверхности.

// Функция contour t=linspace(-%pi,%pi,30);

function z=my_surface(x,y),z=x*sin(x)^2*cos(y),endfunction contour(t,t,my_surface,10) 6.2.6. Функция hist3d 3d представление гистограммы.

// Функция hist3d. Объемная гистограмма hist3d(10*rand(10,10));

6.2.7. Функция geom3d Наложение 2d на 3d после рисования 3d.

// Функция geom3d. Наложение 2d на 3d после рисования 3d.

r=(%pi):-0.01:0;

x=r.*cos(10*r);

y=r.*sin(10*r);

deff('[z]=Surf(x,y)','z=sin(x)*cos(y)');

t=%pi*(-10:10)/10;

// Рисование поверхности fplot3d(t,t,Surf,35,45,'X@Y@Z',[19,2,3]);

// Добавить 2d график на 3d график z=(sin(x).*cos(y));

[x1,y1]=geom3d(x,y,z);

xpoly(x1,y1,'lines');

// Регулировка параметров графика BackgroundColorId = color(70,174,255);

current_axe = gca();

plot_3d = current_axe.children(2);

plot_3d.hiddencolor = 32;

polyline = current_axe.children(1) polyline.foreground = 8;

current_axe.rotation_angles = [70,47];

current_axe.background = BackgroundColorId;

6.2.8. Функция mesh (сетка) Отображает матрицу в виде поверхности. Матрица определяет каркас фигуры.

// Функция mesh [X,Y]=meshgrid(-1:.1:1,-1:.1:1);

Z=X.^2-Y.^2;

xtitle('z=x2-y ^2');

mesh(X,Y,Z,'color_flag',0);

Внутри функции mesh используется функция fac3d. Она окрашивает грани поверхности, цвета зависят от флага Color_flag. По умолчанию Color_flag=0. В редакторе нарисованного графика можно менять Color_flag. Возможные значения:

Color_flag = 0. Грани белые.

Color_flag = 1. Грани цветные.

Color_flag = 2. Грани цветные.

Color_flag = 3. Грани цветные.

Color_flag = 4. Грани цветные.

Color_flag = 1. Грани цветные. Color_flag = 1. Грани цветные.

Color_flag = 3. Грани цветные. Color_flag = 4. Грани цветные.

6.2.9. Функции surf (сетка с окраской поверхности) // Функция surf. Сетка с окраской поверхности [X,Y]=meshgrid(-1:.1:1,-1:.1:1);

Z=X.^2-Y.^2;

xtitle('z=x2-y^2');

surf(X,Y,Z);

Внутри функции surf используется функция fac3d с color_flag = 4.

7. Scilab, графический интерфейс пользователя Средства графического пользовательского интерфейса (GUI – Graphic User Interface) предназначены для создания в Scilab приложений с пользовательским интерфейсом. Определены две возможности:

TCL/Tk interface. Интерфейс TCL/Tk. Эти средства предназначены для конструирования графического окна с использованием набора управляющих компонентов.

GUI and Dialogs. ГИП и диалоги. Эти средства предназначены для работы с графическим редактором Scilab.

7.1. TCL/Tk interface TCL (от англ. Tool Command Language — «Командный язык инструментов», читается «тикль») — скриптовый язык высокого уровня. TCL часто применяется совместно с графической библиотекой Tk (Tool Kit). Связку TCL/Tk по-русски иногда называют «Так-тикль».

Области применения языка — быстрое прототипирование, создание графических интерфейсов для консольных программ (пакетов программ), встраивание в прикладные программы, тестирование. Иногда Tcl применяется для создания CGI скриптов.

TCL, наряду с Perl и Python, стал одним из трёх классических скриптовых языков общего назначения.

В TCL данными всех типов, включая код программы, можно манипулировать как строками. Программа на TCL состоит из команд, разделённых символами новой строки или точками с запятой. Каждая команда состоит из набора полей, разделённых пробелами. Первое поле должно быть именем команды, а необязательные остальные поля — передаваемые этой команде аргументы. Команда возвращает значение, иногда пустое.

Ключевых слов как таковых нет — понятие команды в TCL аналогично понятию процедуры или функции распространённых языков программирования. Это относится и к управляющим конструкциям языка. В сочетании с элементарным синтаксисом это обеспечивает хорошую расширяемость языка, в том числе и библиотеками, написанными на других языках, таких как C/C++ или Java.

В TCL также качественно реализована модель управления программой на основе событий. События могут генерироваться таймером, при появлении данных в канале, изменении значения переменной, при завершении какой либо внешней программы, или просто при работе пользователя с интерфейсом Tk. Можно задавать свои события и управлять ими.

В Scilab для создания интерфейса TCL используются следующие функции:

Функция Назначение close Закрыть фигуру.

figure Создать фигуру.

findobj Обнаруживает объект с указанным свойством.

uicontrol Создает объект ГИП.

uimenu Создает меню или подменю в фигуре.

ScilabEval TCL инструкция.

TCL_CreateSlave Создает TCL управляемый интерпретатор.

TCL_DeleteInterp Удаляет TCL интерпретатор.

TCL_ExistInterp Возвращает %T, если TCL управляемый интерпретатор существует.

TCL_ExistVar Возвращает %T, если TCL переменная существует.

TCL_GetVar Получить значение TCL переменной.

TCL_SetVar Установить значение TCL переменной.

TCL_UnsetVar Удалить TCL переменную.

TCL_GetVersion Получить версию библиотеки реального времени TCL/Tk.

TCL_UpVar Сделать ссылку от TCL источника к переменной назначения TCL TCL_EvalFile Читает и рассчитывает TCL/Tk файл.

TCL_EvalStr Рассчитывает строку в TCL/Tk интерпретаторе.

В интерфейсе TCL/Tk присутствуют управляющие элементы, при изменениях пользователем свойств которых вызываются подпрограммы, выполняющие некоторые действия. Доступны следующие компоненты:

Компонент Назначение PushButton Переключаемая кнопка. При нажатии отображается нажатой, при отпускании генерирует действие, но остается нажатой. Применяется для панелей инструментов.

CheckBox Независимый переключатель. Имеет два состояния: on (1) – включен, off (0) – выключен.

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

RadioButton Зависимый переключатель. Имеет два состояния: on (1) – включен, off (0) – выключен.

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

Один зависимый переключатель ничем не отличается от независимого (CheckBox). Имеет смысл применения в группе, когда при включении одного переключателя другие выключаются.

Это нужно программировать в обработчике.

Edit Редактор текста. Используется для ввода и редактирования строк текста. Действие генерируется при нажатии клавиши Enter для однострочного текста и Ctl+Enter для многострочного текста.

Text Поле для отображения текста.

Slider Ползунок. Отображает численное значение в выбранном диапазоне с выбором значения перемещением ползунка.

ListBox Список тем для выбора. Позволяет выбрать одну или несколько тем.

PopUpMenu Выпадающее меню (иначе ComboBox). Подобен ListBox, но список открывается только при выборе. Используется для экономии места.

Frame Кадр.

7.1.1. Объект PushButton Это gереключаемая кнопка. При нажатии отображается нажатой, при отпускании генерирует действие, но остается нажатой. Применяется для панелей инструментов.

Свойство Значение Описание ‘Style’ Стиль ‘Slider’ ‘Position’ Позиция [x y w h] Вектор из 4 целых чисел:

x, y- координаты левого нижнего угла, w – ширина, h - высота ‘Min’ Минимум Целое число Левая граница ‘Max’ Максимум Целое число Правая граница ‘Value’ Значение Целое число Определяется положением ползунка ‘SliderStep’ Шаг [small big] Вектор из 2 целых чисел small - малый, при однократном щелчке, big - большой, при двойном щелчке.

‘callback’ Возврат Действие выполняемое при движении ползунка.

7.1.2. Объект Checkbox Это независимый переключатель, в котором выбирается значение Value (1 – включен, 0 – выключен). Можно использовать группу таких объектов. Никаких действий Check Box не выполняет.

Свойство Значение Описание ‘Style’ Стиль ‘Checkbox’ Независимый переключатель ‘Position’ Позиция [x y w h] Вектор из 4 целых чисел:

x, y- координаты левого нижнего угла, w – ширина, h - высота ‘String’ Строка Имя объекта Описывает назначение объекта ‘Value’ Значение On (1) или off (0) On – включен, off - выключен Программа использования объектов ‘Checkbox’. В ней создаются: два объекта ‘Checkbox’ и кнопка ‘Pushbutton’ для запуска обработчика. В свойстве ‘callback’ объекта ‘Pushbutton’ предусмотрена функция ‘Run’(), которая выполняет действия в зависимости от значений свойств ‘Value’ объектов ‘Checkbox’. Начальные значения этих свойств 0. Для изменения значения свойства ‘Value’ нужно щелкнуть по объекту, признак состояния 1 – птичка в объекте. При нажатии кнопки ‘Run’ выполняются следующие действия. Если состояние одного из объектов ‘Checkbox’ равно 1, то рисуются графики синуса или косинуса. Если оба равны 1, то рисуются оба графика. Если оба равны 0, то ничего не делается.

Листинг программы // GUI с переключателями f=figure('Position',[50 50 200 200]);

// Создание графического окна set(f,'figure_name','Ve GUI');

// Создание переключателей hCBox1=uicontrol('Style','checkbox','String','sin(x)','value',0,...

'Position',[25,100,60,20]);

hCBox2=uicontrol('Style','checkbox','String','cos(x)','value',0,...

'Position',[25,140,60,20]);

hPButton=uicontrol('Style','pushbutton','Position',[25,80,60,20],...

'String','Run','callback','Run');

// Функция Run, реакция на событие 'callback' function Run() x=-2*%pi:0.1:2*%pi;

y1=sin(x);

y2=cos(x);

pr=0;

pr1=0;

pr2=0;

// Активных нет if get(hCBox1,'value')==1 then pr1=1, end;

// Активен if get(hCBox2,'value')==1 then pr2=1, end;

// Активен if pr1*pr20 then pr= elseif pr1==1 pr= elseif pr2==1 pr=2, end;

if pr==1 then newaxes, plot(x,y1,'r'),xgrid(),end;

//Построение sin(x) if pr==2 then newaxes, plot(x,y2,'g'),xgrid(),end;

//Построение cos(x) if pr==3 then newaxes, plot(x,y1,x,y2),xgrid(),end;

//Построение sin(x), cos(x) endfunction Ниже три снимка окна при разных состояниях объектов ‘Checkbox’.

Пример графика, рисуемого в третьем случае:

7.1.3. Объект RadioButton Это зависимый переключатель, входящий в группу. Визуально отображается прямоугольником с птичкой внутри при активизации. Когда переключатель устанавливается, то его свойство Value приобретает значение on (1 – включен), и выполняется прописанное для действие. В обработчике альтернативные переключатели группы должны быть сброшены.

Свойство Значение Описание ‘Style’ Стиль ‘RadioButton’ Независимый переключатель ‘Position’ Позиция [x y w h] Вектор из 4 целых чисел:

x, y- координаты левого нижнего угла, w – ширина, h - высота ‘String’ Строка Имя объекта Описывает назначение объекта ‘Value’ Значение On (1) или off (0) On – включен, off - выключен Программа использования объектов ‘RadioButton’. В ней создаются: два объекта ‘RadioButton’. В свойстве ‘callback’ ‘RadioButton’ каждого объекта ‘Pushbutton’ предусмотрена своя функция ‘Radio1’() или ‘Radio1’(). Они выполняют действия в зависимости от значений свойств ‘Value’ объектов ‘RadioButton’. Начальные значения этих свойств 0. Для изменения значения свойства ‘Value’ нужно щелкнуть по объекту. Появляется признак состояния 1 – птичка в объекте и исполняется функция. Она выполняет действие, определенное для выбранной кнопки, и сбрасывает альтернативную кнопку. В примере для одной из двух кнопок рисуется синус, для другой косинус.

Листинг программы // GUI с радиокнопками f=figure('Position',[50 50 200 200]);

// Создание графического окна set(f,'figure_name','My GUI Radiobuttons');

// Создание радиокнопок hRb1=uicontrol('Style','radiobutton','String','sin(x)','value',0,...

'Position',[25,100,60,20],'callback','Radio1');

hRb2=uicontrol('Style','radiobutton','String','cos(x)','value',0,...

'Position',[25,140,60,20],'callback','Radio2');

x=-2*%pi:0.1:2*%pi;

// Функции Radio, реакция на событие 'callback' function Radio1() newaxes;

if get(hRb1,'value')==1 then // Активна set(hRb2,'value',0);

// Сброс альтернативной кнопки plot(x,sin(x),'r'),xgrid();

// Построение sin(x) end;

plot(x,sin(x),'r'),xgrid();

// Построение sin(x) endfunction function Radio2() newaxes;

if get(hRb2,'value')==1 then // Активна set(hRb1,'value',0);

// Сброс альтернативной кнопки end;

plot(x,cos(x),'g'),xgrid();



Pages:     | 1 || 3 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.