Приоритет операторов

Можно создавать выражения, которые используют любую комбинацию арифметических, реляционных и логических операторов. Уровни приоритета определяют порядок, в котором MATLAB® вычисляет выражение. На каждом уровне приоритета операторы имеют равный приоритет и оцениваются слева направо. Правила приоритета для операторов MATLAB показаны в этом списке, упорядоченном от наивысшего уровня приоритета до самого низкого уровня приоритета:

  1. Круглые скобки ()

  2. Транспонирование (.'), степень (.^), комплексная сопряженная транспозиция ('), матричная степень (^)

  3. Степень с унарным минусом (.^-), унарный плюс (.^+), или логическое отрицание (.^~) а также матричная степень с унарным минусом (^-), унарный плюс (^+), или логическое отрицание (^~).

    Примечание

    Хотя большинство операторов работают слева направо, операторы (^-), (.^-), (^+), (.^+), (^~), и (.^~) работа со секунды справа налево. Рекомендуется использовать круглые скобки для явного определения предполагаемого приоритета выражений, содержащих эти комбинации операторов.

  4. Унарный плюс (+), унарный минус (-), логическое отрицание (~)

  5. Функции умножения (.*), правое деление (./), левое деление (.\), матричное умножение (*), матричное правое деление (/), матричное левое деление (\)

  6. Сложение (+), вычитание (-)

  7. Оператор двоеточия (:)

  8. Меньше (<), меньше или равно (<=), больше (>), больше или равно (>=), равный (==), не равно (~=)

  9. Поэлементный И (&)

  10. Поэлементное ИЛИ (|)

  11. Короткая схема И (&&)

  12. Короткая схема ИЛИ (||)

Приоритет операторов AND и OR

MATLAB всегда дает & приоритет оператора над | оператор. Хотя MATLAB обычно оценивает выражения слева направо, выражение a|b&c оценивается как a|(b&c). Рекомендуется использовать круглые скобки для явного определения предполагаемого приоритета операторов, содержащих комбинации & и |.

То же правило приоритета верно для && и || операторы.

Переопределение приоритета по умолчанию

Приоритет по умолчанию может быть переопределен с помощью круглых скобок, как показано в этом примере:

A = [3 9 5];
B = [2 1 5];
C = A./B.^2
C =
    0.7500    9.0000    0.2000

C = (A./B).^2
C =
    2.2500   81.0000    1.0000

Похожие темы