Changing real part of complex number?

5 visualizaciones (últimos 30 días)
Danijel
Danijel el 10 de Oct. de 2017
Editada: John D'Errico el 10 de Oct. de 2017
I have an array of compelx numbers. I'd like to change the real part of the 34th array member to zero. This code doesn't work:
real( my_complex_array(34) ) = 0;
What's the solution?

Respuesta aceptada

John D'Errico
John D'Errico el 10 de Oct. de 2017
Editada: John D'Errico el 10 de Oct. de 2017
X = (1:35)' * (1+1i); % not being very creative here
Now, there are lots of ways to just kill the real part of only the 34'th element. This will work:
X(34) = X(34) - real(X(34));
Perhaps simpler, because it will not require the subtraction.
X(34) = 1i*imag(X(34));
Or,
X(34) = 0 + 1i*imag(X(34));
Another one, using complex.
X(34) = complex(0,imag(X(34));
In any event, did it work?
X(33:35)
ans =
33 + 33i
0 + 34i
35 + 35i
Of course it did.

Más respuestas (1)

KSSV
KSSV el 10 de Oct. de 2017
z = rand(50,1)+1i*rand(50,1) ;
z(34) = 0+1i*imag(z(34))

Categorías

Más información sobre Operators and Elementary Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by