Se non si dispone già del pacchetto simbolico, scaricarlo. Dalla riga di comando di Octave o dalla riga di comando di GUI. per esempio.
octave> pkg install -forge symbolic
Se si dispone di pitone e sympy installato, che installerà il pacchetto per voi da un'ottava fucina. Ho usato google per capire come installare sympy, mi ha colpito se hai bisogno di aiuto.
Con il pacchetto simbolico installato, utilizzare "pkg load" per importare le funzioni del pacchetto, quindi utilizzare la funzione syms per dichiarare i simboli.
octave> pkg load symbolic
octave> syms a b
Questi simboli definiti ae b.
octave> syms
Symbolic variables in current scope:
a
b
"syms" di per sé stamperà tutti i simboli che hai definito.
octave> mat = [a,b]
mat = (sym) [a b] (1×2 matrix)
octave:34> mat * 2
ans = (sym) [2⋅a 2⋅b] (1×2 matrix)
Ho trovato questo pacchetto molto utile nel calcolo delle matrici di rotazione per la mia classe di manipolatori robotici. Spero che questo ti aiuti.
Ecco parte del mio script per ulteriori esempi:
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(θ) ⎦
prego fino voto
No. Ho già il pacchetto di simboli, ma il problema persiste. –
@Gryllida Sfortunatamente non uso Octave da un po 'e non sono così veloce nel capire le cose. Raccomando caldamente anche di chiedere sulla [mailing list di Octave] (https://mailman.cae.wisc.edu/listinfo/help-octave): un sacco di persone utili e competenti laggiù. –
La pagina nel "questo" link non esiste più. –