Borrar filtros
Borrar filtros

Starting with all symbols, ending with mixed symbols and number?

1 visualización (últimos 30 días)
I'm performing some symbolic manipulations that result in
(a/b)*x
I'd like to keep 'x' a symbol and substitute numbers for a and b. Unfortunately, the numbers are treated symbolically and a/b doesn't simplify
double((a/b)*x ) doesn't work because x is still a symbol. I'm sure there's a trivial solution that I haven't found.
thanks in advance

Respuesta aceptada

Walter Roberson
Walter Roberson el 11 de Dic. de 2023
syms a b x
%Expression
y = (a/b)*x;
newy0 = subs(y, [a b], [2 3])
newy0 = 
newy1 = subs(y, [a b], sym([2 3], 'd'))
newy1 = 
newy2 = vpa(subs(y, [a b], [2 3]))
newy2 = 
sympref('FloatingPointOutput', true)
ans = logical
0
newy4 = subs(y, [a b], [2 3])
newy4 = 

Más respuestas (2)

Dyuman Joshi
Dyuman Joshi el 11 de Dic. de 2023
Editada: Dyuman Joshi el 11 de Dic. de 2023
Use subs -
syms a b x
%Expression
y = (a/b)*x;
y = subs(y, [a b], [2 3])
y = 
If you want the expression in decimal representation, you could use vpa -
%Decimal representation with atleast 10 significant digits
y = vpa(y, 10)
y = 

Torsten
Torsten el 11 de Dic. de 2023
Movida: Torsten el 11 de Dic. de 2023
Unfortunately, the numbers are treated symbolically and a/b doesn't simplify
The numbers are not treated symbolically, but as long as x is symbolic, the complete expression is symbolic.
"double" can only be applied to expressions in which all symbolic variables have been substituted by numerical values.

Categorías

Más información sobre Numbers and Precision en Help Center y File Exchange.

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by