Если у вас еще нет символического пакета, скачайте его. Из командной строки Octave или командной строки GUI. например,
octave> pkg install -forge symbolic
Если у вас установлен python и sympy, это установит пакет для вас из octave forge. Я использовал Google, чтобы выяснить, как установить sympy, напишите мне, если вам нужна помощь.
При установленном символьном пакете используйте «pkg load» для импорта функций пакета, а затем используйте функцию syms для объявления символов.
octave> pkg load symbolic
octave> syms a b
Это определенные символы a и b.
octave> syms
Symbolic variables in current scope:
a
b
"syms" само по себе напечатает все символы, которые вы определили.
octave> mat = [a,b]
mat = (sym) [a b] (1×2 matrix)
octave:34> mat * 2
ans = (sym) [2⋅a 2⋅b] (1×2 matrix)
Я нашел этот пакет очень полезным при вычислении матриц вращения для моего класса роботизированных манипуляторов. Надеюсь, это поможет.
Вот часть моего скрипта для дополнительных примеров:
pkg load symbolic
syms psi phi theta psidot phidot thetadot
RzPsi = [[cos(psi), -sin(psi), 0]; [sin(psi), cos(psi), 0]; [0,0,1]]
RyTheta = [[cos(theta), 0, sin(theta)];[0,1,0];[-sin(theta), 0, cos(theta)]]
RzPhi = [[cos(phi), -sin(phi), 0]; [sin(phi), cos(phi), 0]; [0,0,1]]
RzPsi = (sym 3×3 matrix)
⎡cos(ψ) -sin(ψ) 0⎤
⎢ ⎥
⎢sin(ψ) cos(ψ) 0⎥
⎢ ⎥
⎣ 0 0 1⎦
RyTheta = (sym 3×3 matrix)
⎡cos(θ) 0 sin(θ)⎤
⎢ ⎥
⎢ 0 1 0 ⎥
⎢ ⎥
⎣-sin(θ) 0 cos(θ)⎦
RzPhi = (sym 3×3 matrix)
⎡cos(φ) -sin(φ) 0⎤
⎢ ⎥
⎢sin(φ) cos(φ) 0⎥
⎢ ⎥
⎣ 0 0 1⎦
octave> RzPhi * RyTheta
ans = (sym 3×3 matrix)
⎡cos(φ)⋅cos(θ) -sin(φ) sin(θ)⋅cos(φ)⎤
⎢ ⎥
⎢sin(φ)⋅cos(θ) cos(φ) sin(φ)⋅sin(θ)⎥
⎢ ⎥
⎣ -sin(θ) 0 cos(θ) ⎦