1. Обычные скобки ().
2. Транспонирование (.'), степень (.^), комплексно-сопряженное транспонирование('), степень матрицы(^).
3. Унарный плюс (+), унарный минус (-), логическое отрицание (~).
4. Умножение (.*), правое деление (./), левое деление(.\), матричное умножение (*), матричное правое деление (/), матричное левое деление (\).
5. Сложение (+), вычитание (-).
6. Оператор двоеточия (:).
7. Меньше чем (<), меньше чем или равно (<=), больше чем (>), больше чем или равно (>=), равно (==), не равно (~=).
8. Логическое И (&).
9. Логическое ИЛИ (|).
Изменение приоритетов операторов
Имеющаяся последовательность приоритетов может быть изменена путем использования обычных скобок, как это показано в следующем примере.
A = [3 9 5];
B = [2 1 5];
C = A ./ B.^2
C =
0.7500 9.0000 0.2000
C = (A. / B) .^2
2.2500 81.0000 1.0000
Выражения могут также содержать переменные, заданные посредством индексов
b = sqrt (A(2)) + 2*B(1)
b =
7
Команды управления данными (Flow Control)
В MATLAB-е имеются 8 базовых команд для управления потоками данных:
* if, совместно с else и elseif, осуществляет обработку группы выражений, основываясь на
некотором логическом условии.
* switch, совместно с case и otherwise, обрабатывает различные группы выражений, основы-
ваясь на значении некоторого логического условия.
* while осуществляет обработки группы выражений неопределенное число раз, основываясь
на некотором логическом условии.
* for осуществляет обработку группы выражений определенное (заданное) число раз.
* continue передает управление к следующей итерации в циклах for или while , пропуская
все оставшиеся выражения в теле цикла.
* break прекращает обработку выражений и выходит из циклов, созданных командами for
или while.
* try...catch изменяет последовательность выполнения команд, если во время выполнения
программы получено сообщение об ошибке.
* return приводит к прекращению выполнения данной программы и к возврату в вызываю-
щую функцию.
Все конструкции программ, основанные на логических условиях, используют команду end для указания конца соответствующего блока.
Внимание! Во многих случаях вы можете ускорить выполнение программ MATLAB-а, путем замены циклов с командами for и while векторными выражениями (см. ниже).
Команды if, else, and elseif
Команда if оценивает логическое выражение и обрабатывает группу операторов, основыва-ясь на значении указанного выражения. В свое простейшей форме синтаксис команды имеет вид
if (логическое выражение)logical_expression
операторы
end
Если логическое выражение истинно, то есть равно 1, MATLAB выполняет все операторы между строками, содержащими команды if и end . После этого он продолжает выполнять ко-манды. находящиеся за строкой с end. Если логическое выражение ложно, то есть дает логи-ческий 0, MATLAB перескакивает через все выражения между строками с if и end , и про-должает свою работу со строки, следующей за командой end. Например,
if rem (a,2) == 0
disp('a is even')
b = a/2;
Данный блок проверяет, является ли входной аргумент четным числом и, если да, то выводит в комндную строку соответствующее сообщение и делить число а пополам. В противном случае, данный блок не выполняется. Между строками с if и end вы можете включить произ-вольное число операторов, содержащих, в свою очередь, любые команды и циклы. Если ло-гическое выражение приводит к нескалярной величине, то для выполнения блока все элемен-ты аргумента должны буть ненулевыми. Например, допустим X является матрицей. Тогда выражение
if X
эквивалентно следующему
if all(X(:))
При использовании с if , команды else и elseif дают следующие дополнительные возможно-сти создания программ:
* Команда else не имеет логического условия. Операторы, связанные с данной командой вы-
полняются, если предшествующее условие команды if (и, возможно, elseif) является лож-
ным.
* Команда elseif имеет логическое условие, которое оценивается, если предшествующее ус-
ловие команды if (и, возможно, elseif), является ложным. Если логическое условие данной
команды elseif является истинным, то выполняются соответствующие операторы, следую-
щие за данной командой. Вы можете иметь произвольное число команд elseif в пределах
одного блока с if.
if n < 0 % Если n отрицательно, дать сообщение об ошибке
disp('Input must be positive');
elseif rem (n, 2) == 0 % Если n положительно и четно, разделить на 2.
A = n/2;
else
A = (n+1) /2; % Если n положительно и нечетно, прибавить 1 и
% разделить на два.
Команда if и пустые массивы
Если логическое условие, связанное с if, приводит к нулевому массиву, то оно оценивается как ложное. Например, если А является пустым массивом, то следующий блок
if A
S1
S0
выполняет оператор S0.
Команда switch
Команда switch осуществляет обработку определенных операторов, исходя из значения пере-менной или выражения. Ее базовая форма имеет вид
switch выражение (скаляр или строка символов)
case значение 1
операторы % Выполняются если выражение == значение 1
case значение 2
операторы % Выполняются если выражение == значение 2
.
otherwise
операторы % Выполняются если выражение не соответствует не одному
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33