Ignore answers with imaginarey components

1 view (last 30 days)
Justin Bruh
Justin Bruh on 1 Nov 2016
Edited: Thorsten on 1 Nov 2016
I have a for loop nested inside of another for loop. I am using each for loop to vary a specific number (i.e A and B) to get every possible of combination of them and a corresponding result (C). I end up with a matrix of 3 columns and thousands of rows. I need to find the highest value of C. However all values of C with imaginary components are invalid. Can MATLAB eliminate all the values of C with imaginary components and their corresponding values of A and B to give me a new, and much smaller, matrix?

Answers (2)

KSSV on 1 Nov 2016
doc isreal
On using isreal output is a logical 1 if number is real and logical 0 if number is complex. Call isreal on the array which gives 1 and 0 from there eliminate all 0 s which gives you only real.

Thorsten on 1 Nov 2016
Edited: Thorsten on 1 Nov 2016
This is basically the implementation of Dr. Siva Srinivas Kolukula's answer:
ind = ~isreal(C);
A(ind) = [];
B(ind) = [];
C(ind) = [];


Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!