Changing real part of complex number?

조회 수: 5 (최근 30일)
Danijel
Danijel 2017년 10월 10일
편집: John D'Errico 2017년 10월 10일
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?

채택된 답변

John D'Errico
John D'Errico 2017년 10월 10일
편집: John D'Errico 2017년 10월 10일
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.

추가 답변 (1개)

KSSV
KSSV 2017년 10월 10일
z = rand(50,1)+1i*rand(50,1) ;
z(34) = 0+1i*imag(z(34))

카테고리

Help CenterFile Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by