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

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

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

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

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

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

syms x
x
x = x

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

f1 = sym('x')
f1 = x

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

Используйте 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 = 

133

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<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 all
syms a [1 3]
a
a = (a1a2a3)
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 all
a = sym('a',[1 3])
a = (a1a2a3)
whos
  Name      Size            Bytes  Class    Attributes

  a         1x3                 8  sym                

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

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

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

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

Похожие темы