MATLAB Answers

extracting only real numbers (not real part) from a vector

31 views (last 30 days)
I have these 2 vector, phi, and psi.
both have complex number from the 1st to 4864th element, then from 4865th to the last real number.
I'd like to turn phi into a vector, let's say a, and psi, b, which contains only the valus that are real.
Like this the attached files:

  3 Comments

Walter Roberson
Walter Roberson on 18 Jul 2020
a = phi(imag(phi) == 0);
b = psi(imag(psi) == 0);
However, I would suspect that you need more like
mask = imag(phi) == 0 & imag(psi) == 0;
a = phi(mask);
b = psi(mask);
Walter Roberson
Walter Roberson on 18 Jul 2020
"both have complex number from the 1st to 4864th element,"
That is not correct: psi and phi both start with 0, which is not a complex number.
"both have complex number from the 1st to 4864th element, then from 4865th to the last real number."
No, the first element (after the very first) with imaginary part 0 is element 4858.

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 18 Jul 2020
vectors = [phi, psi];
vectors(4865:end, :)

  3 Comments

Paul Rogers
Paul Rogers on 18 Jul 2020
thank, but in this case real numbers happen to start at 4865, they could start before or laterr depending on the case
madhan ravi
madhan ravi on 18 Jul 2020
phi_psi = [phi, psi];
ix = imag([phi, psi]) == 0;
idx = find(all(ix, 2), 1);
Wanted = phi_psi(idx : end, :)

Sign in to comment.

More Answers (0)

Products


Release

R2014b

Community Treasure Hunt

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

Start Hunting!