Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
функции
Scilab-процедуры и Scilab-объекты
Описание
Функции являются процедурами Scilab ("макрос", "функция" и "процедура" имеют одно и то же значение).
Определение функции
Обычно они определяются в файлах с помощью редактора и загружаются в Scilab, используя функцию exec или через библиотеку (см. lib либо genlib). Однако, они также могут быть определены во время исполнения программы (см. deff либо function). Функция определяется двумя составляющими:
- часть "синтаксис определения", как например: - function [y1, ..., yn]=foo(x1, ...,xm) function [y1, ..., yn, varargout]=foo(x1, ...,xm,varargin) 
- ряд Scilab-инструкций. 
Строка "синтаксиса определения" указывает "полный" синтаксис
            вызова этой функции. yi - выходные
            переменные, вычисленные в зависимости от входных переменных
            xi и переменные, существующие в Scilab'е
            в момент исполнения функции.
Вызов функции
- Обычно синтаксис вызова функции следующий: - [y1,...,yn]=foo(x1,...,xm). Можно использовать более короткий список входных или выходных аргументов, чем определённый. В таких случаях используются или устанавливаются только самые первые переменные, начиная слева.- Функция argn может быть использована для получения фактического количества аргументов при вызове. 
- Можно определять функцию с неопределённым максимальным количеством входных или выходных аргументов. Это можно сделать, используя ключевые слова varargin и varargout. 
- Также можно использовать "именованный аргумент" для определения входных аргументов: предположим, что функция - fun1, определённая как- function y1=fun1(x1, x2, x3), тогда её можно вызвать следующим синтаксисом:- y = fun1(x1=33, x3=[1 2 3]); внутри- fun1переменная- x2не будет определена.- Её можно также вызвать следующим синтаксисом: - y = fun1(x1=33, y='foo'). В таком случае переменная- yбудет доступна в контексте функции- fun1. Обратите внимание, что максимальное количество аргументов должно быть меньше или равно числу формальных входных аргументов, используемых в части синтаксиса функции. Обратите внимание, что максимальное количество аргументов должно быть меньше или равно числу формальных входных аргументов, используемых в части синтаксиса функции.- Проверить определены ли переменные можно с помощью функции exists. 
- Когда у функции нет аргументов слева и она вызывается только с аргументами символьных строк, синтаксис вызова может быть упрощён: - fun('a','toto','a string') - что эквивалентно: - fun a toto 'a string' 
Прочие вопросы
Функции являются Scilab-объектами (с номерами типа 13 или 11). И ими можно управлять (создавать, сохранять, загружать, передавать в качестве аргументов, и т. д.) как и другими типами переменных.
Коллекции функций можно собирать в библиотеки. Функции,
            которые начинаются со знака % (например,
            %foo) часто используются чтобы
            перегрузить (см. перегрузку) операции или
            функции для нового типа данных.
|  | Заметьте, что имя функции должно удовлетворять некоторым правилам синтаксиса (см. имена). | 
Примеры
//определение встраиваемой функции (см. function) function [x, y]=myfct(a, b) x=a+b y=a-b endfunction [x,y]=myfct(3,2) //определение встраиваемой функции (см. deff) deff('[x,y]=myfct(a,b)',['x=a+b'; 'y=a-b']) // определение в ASCII-файле (см. exec) exec SCI/modules/elementary_functions/macros/asinh.sci;
Смотрите также
- function — открывает определение функции
- deff — определение функции во время выполнения программы
- exec — исполнение файла-сценария
- lib — loads a library of Scilab functions and variables, and sets its name
- getd — загрузка всех функций, определённых в директории
- genlib — build library from functions in given directory
- exists — проверяет существование переменной
- varargin — переменное число аргументов в списке входных аргументов
- varargout — переменное число аргументов в списке выходных аргументов
- имена — синтаксис имён в Scilab
| Report an issue | ||
| << function | Функции | getd >> |