Выберите syms или sym Функция

В Symbolic Math Toolbox™ можно объявить символические объекты, используя любой из syms или sym. Эти две функции концептуально различаются.

  • The syms функция создает символьный объект, который автоматически присваивается переменной MATLAB ® с таким же именем.

  • The sym функция относится к символьному объекту, который может быть назначен переменным MATLAB с таким же именем или другим именем.

Присвоение символьных переменных переменным MATLAB

The syms функция создает переменную динамически. Для примера, команда syms x создает символьную переменную x и автоматически присваивает его переменному MATLAB с таким же именем.

syms x
x
x = xx

The sym функция относится к символьной переменной, которую можно затем назначить переменным MATLAB с другим именем. Для примера, команда f1 = sym('x') относится к символьной переменной x и присваивает ее переменному MATLAB f1.

f1 = sym('x')
f1 = xx

Создайте символьное число

Используйте syms функция для создания символьной переменной x и автоматически присвойте ее переменному MATLAB x. Когда вы присваиваете число переменного MATLAB x, число представлено с двойной точностью, и это назначение перезаписывает предыдущее назначение на символьную переменную. Класс x становится double.

syms x
x = 1/33
x = 0.0303
class(x)
ans = 
'double'

Используйте sym функция для обращения к точному символьному числу без приближения с плавающей точкой. Затем можно присвоить этот номер переменного MATLAB x. Класс x является sym.

x = sym('1/33')
x = 

133sym (1/33)

class(x)
ans = 
'sym'

Создайте символьную переменную с допущениями

Когда вы создаете символьную переменную с допущением, MATLAB сохраняет символьную переменную и ее предположение отдельно.

Использование syms чтобы создать символьную переменную, которая назначена переменным MATLAB с таким же именем. Вы получаете свежую символическую переменную без предположений. Если вы объявляете переменную, используя symsСуществующие допущения удаляются.

syms x positive
syms x
assumptions
 
ans =
 
Empty sym: 1-by-0
 

Использование sym для обращения к существующей символьной переменной. Если эта символьная переменная использовалась в вашем сеансе работы с MATLAB ранее, то sym относится к нему и его текущему предположению. Если раньше его не использовали, то sym создает его без допущений.

syms x positive
x = sym('x');
assumptions
ans = 0<x0 < x

Создайте много символьных переменных

Чтобы создать много символьных переменных одновременно, используя syms функция удобнее. Можно создать несколько переменных в одной строке кода.

syms a b c

Когда вы используете sym, вы должны объявить переменный MATLAB один за другим и связать их с соответствующими символьными переменными.

a = sym('a');
b = sym('b');
c = sym('c');

Создайте массив символьных переменных

Чтобы объявить символьный массив, содержащий символьные переменные в качестве его элементов, можно использовать любой из syms или sym.

Область команды syms a [1 3] создает символьный массив 1 на 3 a и символьные переменные a1, a2, и a3 в рабочей области. Символические переменные a1, a2, и a3 автоматически назначаются символьному массиву a.

clear
syms a [1 3]
a
a = (a1a2a3)[a1, a2, a3]
whos
  Name      Size            Bytes  Class    Attributes

  a         1x3                 8  sym                
  a1        1x1                 8  sym                
  a2        1x1                 8  sym                
  a3        1x1                 8  sym                

Область команды a = sym('a',[1 3]) относится к символьным переменным a1, a2, и a3, которые присваиваются символьному массиву a в рабочей области. Элементы a1, a2, и a3 не создаются в рабочей области.

clear
a = sym('a',[1 3])
a = (a1a2a3)[a1, a2, a3]
whos
  Name      Size            Bytes  Class    Attributes

  a         1x3                 8  sym                

Символьная переменная в вложенной функции

Чтобы объявить символьную переменную внутри вложенной функции, используйте sym. Например, можно явным образом задать переменный MATLAB x в рабочей рабочей области родительской функции и см. x в символьную переменную с таким же именем.

function primaryFx
    x = sym('x')
    function nestedFx
        ...
    end
end

Вложенные функции делают рабочую область статической, поэтому вы не можете динамически добавлять переменные, используя syms.

Похожие темы