Операторы языка Matlab
К основным операторам языка Matlab, кроме рассмотренного ранее оператора присваивания, относятся:
оператор ввода input;
оператор отображения информации на экране disp;
оператор меню menu;
оператор вывода сообщения об ошибке error;
оператор задержки pause;
условный оператор if;
операторы циклов for и while;
оператор выбора switch;
оператор попытки try;
оператор прерывания работы цикла break;
оператор интерпретации строки eval;
оператор интерпретации имени функции feval;
Правила записи операторов
Операторы могут быть записаны в командной строке или в строках создаваемых пользователем m-файлов. В обоих случаях строка может содержать один или несколько операторов. В последнем случае операторы в одной строке отделяются друг от друга символами "," или ";" (";" подавляет вывод результата на экран, а "," этого не делает).
Один оператор может быть записан на нескольких строках (например, если он очень громоздкий). В этом случае в конце каждой строки (кроме последней) ставится многоточие "…"
Операторы ввода
1. Оператор консольного ввода input.
Формат оператора:
имя_перем = input(строковая_конст);
При выполнении этого оператора на экран выводится текстовое сообщение, соответствующее указанной строковой константе, и ожидается ввод пользователем значения переменной, имя которой указано слева от операции присваивания. Ввод набранного значения следует подтвердить нажатием клавиши [Enter], после чего значение переменной сохраняется в рабочем пространстве (в оперативной памяти).
» n=input('Введите размерность массива n=');
Введите размерность массива n=5
» n
n =
2. Оператор временного перехода в интерактивный режим keyboard.
Как правило, записывается в программном (script-) файле и очень удобен на стадии отладки программы. Формат вызова:
keyboard
После выполнения оператора выполнение m-файла приостанавливается, управление передается клавиатуре. После этого пользователь имеет возможность проверить или изменить значения некоторых переменных, используемых в m-файле, выполнение которого было прервано.
Возврат к выполнению m-файла производится путем вызова оператора возврата в формате
return
и управление передается оператору, следующему за оператором keyboard.
Операторы вывода
1. С помощью имени переменной
В этом случае в командной строке следует набрать имя переменной, после которого не записывать символ ";".
2. Оператор вывода disp.
Формат оператора:
disp(имя_перем)
Выводит значение переменной на экран без отображения ее имени.
» k=1:10;
» disp(k)
1 2 3 4 5 6 7 8 9 10
При использовании составного массива в качестве аргумента часто необходимо использовать функцию преобразования int2str(числ_перем), которая округляет значение числовой переменной до ближайшего целого и преобразует последнее в строковую константу:
» disp(['Размерность массива ' int2str(length(k))])
Размерность массива 10
Оператор задержки
Удобен при выводе в командное окно больших объемов информации. Вызов оператора возможен двумя способами:
pause – ожидает нажатия пользователем произвольной клавиши;
pause(n) – выполняет задержку на n секунд.
Оператор меню
Может рассматриваться как разновидность оператора ввода.
Формат оператора:
переменная = menu ('заголовок','поле1','поле2',…)
Генерирует на экран графическое окно с кнопками, предоставляя пользователю возможность выбора одного из полей. Порядковый номер поля присваивается в качестве значения переменной, указанной слева от операции присваивания.
» k=menu('Выберите двигатель','ДПТ','АД','СД')
k =
Оператор цикла for
Формат оператора:
for имя_перем-парам = выражение
операторы
end
Пример. Текст функции ones(n).
for i = 1:n, x(i)=0, end
Пример 2. Формирование матрицы.
for i = 1:m
for j = 1:n
A(i,j) = 1/(i+j);
end
end
Пример 3. Отрицательный шаг.
t = [–1 0 1 3 5];
n = length(t);
A = rand(1,n);
for j = n:-1:1
A(j) = t.*A(j);
end
Переменная-параметр цикла может быть целочисленной, дробной, а также вектором, например,
for x = [1.25 16 –7 pi –3.45]
…
end
В этом случае переменная-параметр цикла будет поочередно принимать значения с первого по последнее.
Параметр цикла может быть также матрицей. В этом случае параметр цикла поочередно приравнивается каждому столбцу матрицы с первого по последний.
Оператор цикла while
Формат оператора:
while выражение
операторы
end
Пример. Дано действительное число M>0. Найти минимальное целое n, такое, что n!>M.
M=10e100;
while prod(1:n)<=M, n = n+1; end
Условный оператор
Формат оператора:
if выражение1
операторы1
elseif выражение2
операторы2
else
операторы3
end
Число альтернативных ветвей elseif не ограничено.
При записи выражений 1 и 2 используются операции сравнения.
a=rand(1); b=rand(1);
if a>b
c=a;
elseif a<b
c=b;
else disp('Числа равны');
end