6
Переменные в Scilab не имеют строгой типизации, т. е. если в переменной хранился текст, то можно на следующем шаге записать в нее число, а затем логическое значение. Scilab следит за соответствием типов только при вычислении значений выражений.
Вследствие Unix-корней системы, важен регистр букв в имени переменных, например:
В Scilab можно производить различные математические операции с матрицами. Строки матриц отделяются друг от друга при помощи символа «;». Определим матрицу-строку a , матрицу-столбец b и двумерную матрицу c :
Символ «;» в конце строки запрещает немедленный вывод результата (в текущей версии программы не работает). Заданные матрицы выглядят так:
7
С матрицами можно производить различные действия, например, складывать, умножать, транспонировать и т.д.
При этом используются следующие знаки действий: + (сложение), – (вычитание), * (умножение), / (деление), ^ (возведение в степень), ' (транспонирование). Изначально эти операции служат для выполнения матричных действий по правилам матричной алгебры, но они используются и для операций с числами, которые представлены в системе как одномерные матрицы. При выполнении этих действий необходимо помнить о правилах матричной алгебры.
8
Например:
Здесь сделана попытка перемножить две строки, но по правилам матричной алгебры это нельзя сделать. Одну из строк необходимо транспонировать, чтобы получился столбец. Кроме того, согласно правилам матричной алгебры, важен порядок множителей:
Для выполнения поэлементного умножения двух массивов необходимо использовать признак поэлементного действия, т. е. поставить перед знаком действия точку (точка и знак действия пишутся слитно, без пробела):
То же самое относится и ко всем остальным действиям, кроме операции транспонирования.
Для удобства написания функций в Scilab имеется встроенный редактор Scinotes. Он позволяет редактировать тексты функций, сохранять их в скриптах (файлах с расширением .sci) выполнять их в режиме отладки, содержит функцию автодополнения кода, а также средства непосредственной передачи текста программы в среду Scilab на выполнение.
9
Открыть редактор можно двумя способами:
подать в консоли Scilab команду scinotes
выбрать в главном окне последовательно пункты меню Инструменты/Редактор.
В данном курсе используется версия Scilab 5.5.1, в которой присутствует редактор Scinotes. Внешний вид редактора показан на рисунке. Кратко рассмотрим пункты меню:
Файл – здесь находятся стандартные команды для работы с файлами. Правка – содержит стандартные для пункта меню Правка операции:
копировать, вставить и т. д.
Формат – содержит команды форматирования текста в редакторе. Настройки – здесь находится довольно много пунктов, которые
позволяют настроить внешний вид и поведение редактора от типа шрифта до горячих клавиш. Например, можно выбрать комбинацию клавиш, которая будет использоваться для вызова функции автодополнения кода.
Окно – команды управления рабочим окном. Позволяют разбить окно на части по вертикали и горизонтали, а также упорядочить размещение частей окна.
Выполнить – содержит пункты, позволяющие передать содержимое редактора в среду Scilab на выполнение или выполнить только выделенную часть.
10
Справка – это меню обеспечивает доступ к справочным материалам среды Scilab.
Сохранить и открыть созданный скрипт можно при помощи пунктов меню Файл.
Чтобы выполнить написанный скрипт, функцию, ее необходимо передать в основное окно Scilab (консоль). Для этого необходимо воспользоваться меню Выполнить, в котором присутствуют три пункта:
...файл без отображения команд – загрузить в Scilab текущий скрипт,
команды скрипта не показываются в командной строке Scilab;
...файл с отображением команд – загрузить в Scilab текущий скрипт,
команды скрипта показываются в командной строке Scilab;
...до курсора с отображением команд – загрузить в Scilab текущий скрипт, команды скрипта показываются в командной строке Scilab и выполняются до текущей позиции курсора в редакторе.;
Чтобы выполнить скрипт полностью без отображения команд, надо на верхней панели
редактора нажать кнопку «Выполнить».
Переменные, созданные внутри функции, являются локальными и действуют только в пределах этой функции. Переменные, созданные в пространстве до начала функции, являются глобальными и доступны во всех функциях данного файла или текущей рабочей сессии.
В общем случае описание функции выглядит следующим образом: