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