Тело файла с любыми выражениями
var1=выражение
var2=выражение
Здесь var1,var2,…– - имена переменных, которые являются выходными параметрами.
Такую функцию нельзя использовать в математических выражениях, поскольку она возвращает не один результат. Данная функция используется (вызывается) как отдельный элемент программы в виде:
[var1,var2,…. ]=f_name(список параметров).
Если такая функция используется в виде f_name(список параметров), то возвращается значение только первого выходного параметра - переменной var1.
Если внутри функции целесообразно использовать глобальные переменные, то их нужно объявить с помощью команды
global var1 var2…
В функции системы Matlab можно включать подфункции. Они имеют такую же структуру, как и основная функция, и записываются в теле основной функции.
Для создания и отладки m-файла-функции необходимо войти в редактор-отладчик Matlab, выбрав в меню командного окна Matlab пункт Файл, затем пункты Создать и М-файл. После раскрытия окна редактора-отладчика необходимо набрать нужные команды программы, отредактировать их и сохранить полученный файл под именем f_name с помощью пунктов меню Файл, Сохранить как… редактора-отладчика.
Редактирование и отладка файлов-сценариев Scilab
Файл-сценарий - это список команд Scilab, сохраненный на диске. Для подготовки, редактирования и отладки файлов-сценариев служит специальный редактор SciPad, который можно вызвать, выполнив команду главного меню Инструменты – Текстовый редактор.
В результате работы этой команды будет создан новый файл-сценарий. По умолчанию он имеет имя Untitled1.sce.
Выполнить операторы файла-сценария можно несколькими способами:
• из меню редактора SciPad вызвать команду Выполнение – Загрузить в Scilab;
• из главного меню Scilab вызвать команду Файл - Выполнить и указать имя файла-сценария.
Структура функций Scilab
Функции играют роль подпрограмм. Удобнее всего набирать функции в текстовом редакторе и хранить их в либо в отдельных файлах (внешние функции), либо в теле основного скрипта, в начале текста (что более предпочтительно).
Синтаксис
function [y1,...,yn] = fun(x1,...,xm)
тело функции ....
Endfunction
Где
fun - имя фунции,
xi - входные аргументы функции (их m штук),
yi - выходные аргументы функции (их n штук).
Управляющие структуры языка программирования Matlab и Scilab
Диалоговый ввод-вывод
disp(x) отображает массив, не печатая имя массива. Если x - строка, то отображается текст.
Пример
x=[1 2 3];
disp(x)
1 2 3
disp('квадрат второго элемента=')
квадрат второго элемента=
disp(x(2)^2)
r = input('введите значение') дает пользователю приглашение в текстовой строке и затем ожидает ввода с клавиатуры. Может быть введено любое Matlab(Scilab)-выражение, которое вычисляется, используя переменные в текущей рабочей области, и результат возвращается в r. Если пользователь нажимает клавишу возврата каретки, ничего не вводя, то вводится пустая матрица.
r = input(' введите значение', 's')дает приглашение в текстовой строке и ожидает ввода символьной строки. Напечатанный текст не вычисляется; символы просто возвращаются как Matlab(Scilab)-строка.
Циклы типа for-end
Циклы типа for-end обычно используются для организации вычислений с заданным числом повторений цикла. Конструкция такого цикла имеет вид:
for var = выражение
<тело цикла>
End
Выражение чаще всего записывается в виде b:s:e, где b - начальное значение переменной цикла var, s - приращение (шаг) этой переменной и e - конечное значение управляющей переменной, при достижении которого цикл завершается. Возможна запись выражения в виде b:e, в этом случае s=1. Список выполняемых в цикле инструкций завершается оператором end.
Для досрочного выполнения цикла можно использовать оператор break. Как только этот оператор встречается в программе, цикл прерывается.
Возможно использование цикла в цикле.
Пример
for i = 1:3
for j = 1:3
a(i,j) = i+j;
end
end
a
a =
2 3 4
3 4 5
4 5 6
Циклы типа while_end
While Условие
<тело цикла>
End
Цикл типа while выполняется до тех пор, пока выполняется Условие. Для прекращения выполнения цикла можно использовать оператор break.
Пример
x=1;i=1;
while x<=3
y(i)=x;
x=x+0.5; i=i+1;
end
y
y =
1.0000
1.5000
2.0000
2.5000
3.0000