problem with imag command when evaluating symbolic expressions.

1 visualización (últimos 30 días)
Hi, when I execute the following code in Matlab
syms x y; f=4*i+9*x+y; imag(f)
I get the following result
ans =
(9*i*conj(x))/2 - (i*y)/2 - (9*i*x)/2 + (i*conj(y))/2 + 4
and the result should be 4 instead of what I get. I cannot figure out where have I gone wrong.Any ideas?
Thank you in advance.

Respuesta aceptada

Walter Roberson
Walter Roberson el 11 de Feb. de 2013
The result is correct. The symbolic toolbox assumes that variables might be complex unless it has been told otherwise. Try
syms x y real

Más respuestas (1)

Carlos
Carlos el 11 de Feb. de 2013
The answer is right, if you try subs((9*i*conj(x))/2 - (i*y)/2 - (9*i*x)/2 + (i*conj(y))/2 + 4),{x,y},{0,0}) or subs((9*i*conj(x))/2 - (i*y)/2 - (9*i*x)/2 + (i*conj(y))/2 + 4),{x,y},{1,1}) or you give x and y any value, the answer is always 4. It was just that I found the answer a bit awkward. From your answer I grasp that the only problem here was that I should have declared x and y as symbolic real variables.
Than you very much Walter.

Community Treasure Hunt

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

Start Hunting!

Translated by