Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Можно выполнить различные группы операторов в зависимости от конкретных условий. Используйте if
, чтобы задать условие и использовать then
, чтобы задать группу операторов, которые вы хотите выполнить, когда условие верно:
x := -3: if x < 0 then y := x + 2; x := -x; print(x, y) end_if:
Также можно задать группу операторов, которые вы хотите выполнить, когда условие является ложным:
x := 3: if x < 0 then y := x + 2; x := -x; print(x, y) else y := x + 2; x := x; print(x, y) end_if
MuPAD® не требует круглых скобок вокруг условий:
x := 10: if testtype(x, Type::Positive) = TRUE and type(x) = DOM_INT then print(Unquoted, "x = ".x." is a positive integer"); end_if
x = 10 is a positive integer
Можно использовать несколько условий в условных операторах. Объедините несколько условий логическими операторами:
x := 5: y := 6: if x > 0 and 1 - y > 0 then print(Unquoted, "the condition is true") else print(Unquoted, "the condition is false") end_if:
the condition is false
x := 5: y := 6: if x > 0 or 1 - y > 0 then print(Unquoted, "the condition is true") else print(Unquoted, "the condition is false") end_if:
the condition is true
MuPAD поддерживает использование вложенных условных операторов. Например:
x := 5: if testtype(x, DOM_COMPLEX) = TRUE then print("The Heaviside function is undefined for complex numbers") else if x = 0 then heavisideX := 1/2 else if x < 0 then heavisideX := 0 else heavisideX := 1 end_if: end_if; end_if
Для вложенного if ... else if
используйте команду elif
в качестве ярлыка:
x := 0: if (testtype(x, DOM_COMPLEX) = TRUE) then print("The Heaviside function is undefined for complex numbers") elif x = 0 then heavisideX := 1/2 elif x < 0 then heavisideX := 0 else heavisideX := 1; end_if
Чтобы выбрать между несколькими случаями, используйте команду case
. Оператор case
ищет первое допустимое условие. После этого это выполняет все операторы между этим условием и ключевым словом end_if
, не проверяя условия:
x := 4: case x of 1 do of 2 do of 3 do print("three or less") of 4 do print("four") of 5 do print("five") otherwise print("6 or more") end_case:
Чтобы выйти из оператора case
после выполнения операторов, записанных при первом допустимом условии, используйте команду break
. Смотрите Выход из Условного оператора для получения дополнительной информации.
MuPAD выполняет операторы case
по-другому по сравнению с MATLAB®. MATLAB выполняет только первый оператор case
соответствия и пропускает следующие операторы case
. В MuPAD необходимо использовать команду break
, чтобы остановить выполнение следующих операторов.
Чтобы выйти из условного оператора после выполнения операторов, записанных при первом допустимом условии, используйте команду break
. Например, выберите значение сигналов светофора:
trafficLight := yellow: case trafficLight of red do print(Stop); break; of yellow do print(Caution); break; of green do print(Go); break; end_case
Все команды MuPAD производят некоторые возвращаемые значения. Условные операторы возвращают результат последней выполняемой команды:
mapColor := blue: if mapColor = blue then "water" else "land" end_if
Используйте возвращаемое значение условного оператора как любое другое значение. Например, присвойте возвращаемое значение переменной. По умолчанию MuPAD не позволяет условные операторы в присвоениях. Чтобы создать допустимое присвоение, заключите условные операторы в круглые скобки. Подавите вывод возвращаемого значения условного оператора с двоеточием:
mapColor := blue: terrain := (if mapColor = blue then "water" else "land" end_if):
Запишите предложение путем конкатенации следующей строки и переменной terrain
:
print(Unquoted, "Blue color on maps usually shows ".terrain)
Blue color on maps usually shows water
Следующий оператор case
также возвращает результат последнего присвоения:
palette := color: case palette of monochrome do [color1, color2] := [black, white]; break; of color do [color1, color2, color3] := [red, green, blue]; break; end_case
По умолчанию MuPAD не отображает промежуточные результаты, полученные в условном операторе, даже если вы используете точки с запятой после операторов. Чтобы видеть промежуточные результаты, используйте команду print
в условном операторе:
Omega := 2: if Omega > PI/2 and Omega < PI then signSinOmega := 1; signCosOmega := -1; print(signSinOmega, signCosOmega) end_if: