exponenta event banner

Добавление подстрочных, суперскриптов и акцентов к символьным переменным в редакторе Live Editor

Начиная с R2019a, MATLAB Live Editor отображает символьные переменные с подстрочными индексами, надстрочными индексами и акцентами в стандартной математической нотации. В этом примере показано, как добавить индексы, надстрочные индексы и акценты к символьным переменным в редакторе MATLAB ® Live Editor.

Добавить подстрочные и надстрочные индексы

Чтобы добавить подстрочные индексы к символьным переменным в интерактивных сценариях, добавьте соответствующий индекс к переменной с помощью одного подчеркивания (_). Например, создайте две символьные переменные с индексами, используя syms. Используйте эти переменные в выражении.

syms F_a F_b
Ftot = F_a + F_b
Ftot = Fa+FbF_a + F_b

Также можно использовать sym создание символьной переменной с подстрочным индексом и назначение переменной символьному выражению.

Fa = sym('F_a')
Fa = FaF_a

Чтобы добавить надстрочные индексы к символьным переменным, добавьте соответствующий индекс к переменной с помощью двух подчеркиваний (__). Например, создайте две символьные переменные с надстрочными индексами.

syms F__a F__b
Ftot = F__a + F__b
Ftot = Fa+FbF__a + F__b

При назначении символьных переменных выражению символьное выражение отображается в формате ASCII.

Добавить акценты

Чтобы добавить акценты к символьным переменным в живых сценариях, добавьте соответствующий суффикс к переменной с помощью подчеркивания (_). Например, создайте символьные переменные с одной точкой и двумя точками над символом x. Используйте эти переменные в уравнении.

syms x x_dot x_ddot c m k
eq1 = m*x_ddot - c*x_dot + k*x == 0
eq1 = kx-cx˙+mx¨=0k*x - c*x_dot + m*x_ddot == 0

При вычислении комплексного сопряжения символьной переменной с акцентом над переменной добавляется штрих-нотация. Например, найти комплексный конъюгат x_dot с использованием conj функция.

xConj = conj(x_dot)
xConj = x˙conj(x_dot)

Далее следуют поддерживаемые суффиксы акцентов для символьных переменных.

suffix = ["ast"; "hat"; "tilde"; "vec"; "bar"; ...
   "ubar"; "dot"; "ddot"; "tdot"; "qdot"; ...
   "prime"; "dprime"; "tprime"; "qprime"];
accentList = [suffix, sym("x_" + suffix)]
accentList = 

(astx*hatxˆtildexvecxbarxubarxdotx˙ddotx¨tdotxqdotxprimexdprimextprimexqprimex)[ast, x_ast; hat, x_hat; tilde, x_tilde; vec, x_vec; bar, x_bar; ubar, x_ubar; dot, x_dot; ddot, x_ddot; tdot, x_tdot; qdot, x_qdot; prime, x_prime; dprime, x_dprime; tprime, x_tprime; qprime, x_qprime]

При вычислении комплексного сопряженного транспонирования матрицы, содержащей символьные переменные, над каждой переменной также добавляется штрих-запись. Например, найдите сопряженное транспонирование символьных переменных в accentList(:,2) с использованием ctranspose или ' функция.

conjVar = accentList(:,2)'
conjVar = 

(x*xˆxxxxx˙x¨xxxxxx)[conj(x_ast), conj(x_hat), conj(x_tilde), conj(x_vec), conj(x_bar), conj(x_ubar), conj(x_dot), conj(x_ddot), conj(x_tdot), conj(x_qdot), conj(x_prime), conj(x_dprime), conj(x_tprime), conj(x_qprime)]

При вычислении непереключенного транспонирования матрицы, содержащей символьные переменные, вывод на экран не изменяется. Например, найдите непереключенную транспонирование символьных переменных в accentList(:,2) с использованием transpose или .' функция.

nonconjVar = accentList(:,2).'
nonconjVar = 

(x*xˆxxxxx˙x¨xxxxxx)[x_ast, x_hat, x_tilde, x_vec, x_bar, x_ubar, x_dot, x_ddot, x_tdot, x_qdot, x_prime, x_dprime, x_tprime, x_qprime]

Добавление нескольких подстрочных, суперскриптов и акцентов

Можно создавать символьные переменные с несколькими подстрочными индексами, надстрочными индексами и акцентами. Несколько суффиксов назначаются символьным переменным слева направо.

Создание символьных переменных с несколькими подстрочными и надстрочными индексами. При добавлении нескольких подстрочных и надстрочных индексов входные индексы разделяются запятой и отображаются слева направо.

x1 = sym('x_b_1__a__1')
x1 = xb,1a,1x_b_1__a__1
x2 = sym('x__b_1_a__1')
x2 = x1,ab,1x__b_1_a__1

Теперь создайте символьные переменные с несколькими акцентами. При добавлении нескольких акцентов входные акценты назначаются слева направо ближайшей предшествующей переменной или индексу. Ниже приводятся некоторые примеры.

v1 = sym('v_prime_vec')
v1 = 

vv_prime_vec

v2 = sym('v_vec_prime')
v2 = 

vv_vec_prime

va = sym('v__a_bar_prime')
va = vav__a_bar_prime
vb = sym('v_bar__b_prime')
vb = vbv_bar__b_prime

Добавление суффиксов к символьным переменным может привести к аналогичным результатам. Однако переменные равны только в том случае, если их суффиксы также имеют одинаковый порядок. Например, создайте три символьные переменные, которые производят аналогичные выходные данные.

syms F_t__a
F1 = F_t__a
F1 = FtaF_t__a
F2 = sym('F_t__a')
F2 = FtaF_t__a
F3 = sym('F__a_t')
F3 = FtaF__a_t

Определите, равны ли символьные переменные друг другу, с помощью isequal функция.

TF_12 = isequal(F1,F2)
TF_12 = logical
   1

TF_23 = isequal(F2,F3)
TF_23 = logical
   0

Связанные темы