|
Библиотеки функцийБиблиотека представляет собой набор функций, написанных на языке Scilab и хранящихся в отдельных файлах. Если набор функций невелик и не содержит файлов справки или исходных текстов на компилируемых языках (таких как C/C++ или Fortran), объединение их в библиотеку является весьма удачным выбором, в противном случае следует задуматься о создании модуля. Разработка собственного модуля не представляет трудностей, однако требует более детального знакомства с внутренним устройством пакета Scilab. Кроме того, модули также имеют в своей основе библиотеки, поэтому для создания первых требуется понимание работы последних. Тем не менее, построение собственного модуля выходит за рамки настоящего руководства. Во многих практических ситуациях создание библиотеки является достаточным для организации набора функций. В этом разделе рассматривается создание простой библиотеки функций Scilab, а также способы ее автоматической загрузки при запуске пакета. Предположим, что имеется несколько файлов .sci, содержащих функции на языке Scilab. Последовательность действий в этом случае такова: 1. Создать бинарные версии функций, используя команду genlib. Функция genlib помимо прочего генерирует индексные файлы. 2, Загрузить библиотеку в Scilab, для чего используется функция lib. Перед тем как приступить к рассмотрению примера, необходимо обозначить основные правила создания библиотек функций в Scilab. Далее эти правила будут проиллюстрированы на примере. Файлы, содержащие определения функций, должны иметь расширение .sci. Строго говоря, наличие этого расширения не является обязательным, но помогает при поиске скриптов Scilab на жестком диске компьютера. В одном файле .sci могут быть определены несколько функций Scilab, однако только первая из них будет доступна извне. Иными словами, только первая функция, определенная в файле, считается общедоступной, в то время как остальные неявно полагаются закрытыми (служебными) функциями. Имя файла .sci должно совпадать с именем общедоступной функции в этом файле. Например, если имя функции myfun, то файл, содержащий ее, должен иметь название myfun.sci. Это требование является обязательным, в противном случае функция genlib не будет работать корректно. Инструкции Scilab, используемые при работе с библиотеками функций, представлены в табл. 17.
Таблица 17: Инструкции Scilab для работы с библиотеками функций,
Теперь перейдем к примеру создания конкретной библиотеки. Предположим, что мы работаем на компьютере под управлением ОС Windows. Пусть в каталоге samplelib размещаются два файла:
function у = functionl ( х ) у = 1 * functionl_support ( х ) endfunction function у = functionl_support ( x ) у = 3 * x endfunction
function у = function2 ( x ) у = 2 * x endfunction Следующий пример демонстрирует, как создать бинарную версию функций, восполь-зовавшись инструкцией genlib. Первый аргумент функции genlib представляет название будущей библиотеки, а второй указывает каталог, где размещены файлы функций. Заметим, что в данном случае только функции functionl и function2 являются общедоступными, а функция functionl_support может использоваться только внутри библиотеки, но не вне ее. -->genlib("mylibrary", "С:/samplelib") -->mylibrary mylibrary = Functions files location : С:\samplelib\. functionl function2 Функция genlib генерирует и помещает в каталог "C:/samplelib" следующие файлы:
функций в библиотеке. Скомпилированные файлы *.bin и файл lib являются кроссплатформенным в том смысле, что могут без изменений использоваться версиями Scilab для Windows, Linux или Mac OS. Сразу же после вызова genlib, две новых функции становятся доступны окружению Scilab и могут быть вызваны, как показано ниже: -->functionl(3) ans = 9. -->function2(3) ans = 6. Вместе с тем, на практике нет необходимости каждый раз генерировать библиотеку заново. Готовую библиотеку можно загрузить посредством команды lib, единственный аргумент которой указывает местоположение загружаемой библиотеки в файловой системе. Следующий фрагмент иллюстрирует загрузку ранее созданной библиотеки: -->mylibrary = lib("С:\samplelib\") ans = Functions files location : С:\samplelib\. functionl function2 При большом числе загружаемых библиотек, удобно поместить инструкции lib в стартовом скрипте Scilab, который автоматически исполняется при загрузке пакета. В этом случае все указанные библиотеки будут доступны сразу же после старта Scilab. Файл стартового скрипта размещается в основном каталоге Scilab, путь к которому можно узнать, проверив значение переменной SCIHOME: -->SCIH0ME SCIHOME = C:\Users\username\AppDatа\Roaming\Scilab\scilab-5.2.0 Стартовый скрипт носит имя .scilab и является обычным скриптом Scilab (в том числе может содержать комментарии). Для загрузки созданной ранее библиотеки добавим в файл .scilab следующие строки: //Load my favorite library. mylibrary = lib("С:/samplelib/") В результате библиотека mylibrary будет загружаться всякий раз при старте пакета Scilab. |
|
© vse-o-scilab |