Блокноты 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: