is it possible to square every element in equation ?

1 visualización (últimos 30 días)
adam
adam el 4 de Abr. de 2014
Editada: Azzi Abdelmalek el 4 de Abr. de 2014
Hi Im working with inverse kinematics, and with that there are one move where I need to square every element of a quite large equation, are there a way to do this without writing it in everywhere ?
Example
if i have (a+b+c*d) i would lik it to become (a^2+b^2+c^2*d^2), preferably without writing in'^2' everywhere by hand.
Thanks in advance :)
  2 comentarios
Jan
Jan el 4 de Abr. de 2014
What exactly does "i have (a+b+c*d)" mean? Is it written on paper, a string, Matlab code or a symbolic Mupad equation?
adam
adam el 4 de Abr. de 2014
that should represent a symbolic equation, like:
syms a b c d
equation = a+b+c*d

Iniciar sesión para comentar.

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 4 de Abr. de 2014
Editada: Azzi Abdelmalek el 4 de Abr. de 2014
syms a b c d
s = (a+b+c.*d)
t=symvar(s);
out=subs(s,t,t.^2)

Más respuestas (2)

Grzegorz Knor
Grzegorz Knor el 4 de Abr. de 2014
You have to use regular expression.
Suppose that you use only small letters, then:
s = '(a+b+c*d)'
expression = '[a-z]'
replace = '$0^2'
s2 = regexprep(s,expression,replace)

ragesh r menon
ragesh r menon el 4 de Abr. de 2014
Yes, This is possible in Symbolic Math Toolbox for example
syms a b c d
s=a+b+c+d;
subs(s, [a b c d],[a^2 b^2 c^2 d^2])
ans =
a^2 + b^2 + c^2 + d^2

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by