Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для моделирования в Matlab и Scilab.doc
Скачиваний:
28
Добавлен:
07.11.2018
Размер:
276.48 Кб
Скачать
      1. Редактирование и отладка файлов-сценариев Scilab

Файл-сценарий - это список команд Scilab, сохраненный на диске. Для подготовки, редактирования и отладки файлов-сценариев служит специальный редактор SciPad, который можно вызвать, выполнив команду главного меню Инструменты – Текстовый редактор.

В результате работы этой команды будет создан новый файл-сценарий. По умолчанию он имеет имя Untitled1.sce.

Выполнить операторы файла-сценария можно несколькими способами:

• из меню редактора SciPad вызвать команду Выполнение – Загрузить в Scilab;

• из главного меню Scilab вызвать команду Файл - Выполнить и указать имя файла-сценария.

      1. Структура функций Scilab

Функции играют роль подпрограмм. Удобнее всего набирать функции в текстовом редакторе и хранить их в либо в отдельных файлах (внешние функции), либо в теле основного скрипта, в начале текста (что более предпочтительно).

Синтаксис

function [y1,...,yn] = fun(x1,...,xm)

тело функции ....

endfunction

Где

fun - имя фунции,

xi - входные аргументы функции (их m штук),

yi - выходные аргументы функции (их n штук).

    1. Управляющие структуры языка программирования Matlab и Scilab

      1. Диалоговый ввод-вывод

disp(x) отображает массив, не печатая имя массива. Если x - строка, то отображается текст.

Пример

x=[1 2 3];

disp(x)

1 2 3

disp('квадрат второго элемента=')

квадрат второго элемента=

disp(x(2)^2)

4

r = input('введите значение') дает пользователю приглашение в текстовой строке и затем ожидает ввода с клавиатуры. Может быть введено любое Matlab(Scilab)-выражение, которое вычисляется, используя переменные в текущей рабочей области, и результат возвращается в r. Если пользователь нажимает клавишу возврата каретки, ничего не вводя, то вводится пустая матрица.

r = input(' введите значение', 's') дает приглашение в текстовой строке и ожидает ввода символьной строки. Напечатанный текст не вычисляется; символы просто возвращаются как Matlab(Scilab)-строка.

      1. Циклы типа 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

      1. Циклы типа 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

      1. Условный оператор if-elseif-else-end

Условный оператор if в общем виде записывается следующим образом:

Matlab

Scilab

if Условие1

<Инструкции>

end

if Условие1 then

<Инструкции 1>

end

if Условие

<Инструкции 1>

else

<Инструкции 2>

end

if Условие1 then

<Инструкции 1>

Else

<Инструкции 3>

end

if Условие1

<Инструкции 1>

elseif Условие2

<Инструкции 2>

else

<Инструкции 3>

end

if Условие1 then

<Инструкции 1>

elseif Условие2 then

<Инструкции 2>

else

<Инструкции 3>

end

Данный оператор работает следующим образом. Пока Условие возвращает логическое значение 1 (то есть выполняется), выполняются Инструкции. Оператор end указывает на конец списка Инструкций. Инструкции в списке разделяются запятыми или точками с запятыми. Если Условие возвращает логическое значение 0 (то есть не выполняется), то Инструкции также не выполняются.