Блокноты 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:
![]()