How to combine array columns to form complex number?

28 views (last 30 days)
I'm trying to combine two columns from two arrays to form a complex number. I know I can create a complex number using the complex(a,b) function and I think I am correct in addressing each column in the two arrays as S21real(:,2) and S21imag(:,2). As a results my code looks like
S21complex = complex(S21real(:,2), S21imag(:,2));
Where my data looks like
S21real:
690000000 0.00854245859320000 0
690193750 0.00915901995335000 0
690387500 0.00963277694145000 0
S21imag:
690000000 0.00854245859320000 0
690193750 0.00915901995335000 0
690387500 0.00963277694145000 0
However, when I run the code, I get the following error:
Error using complex
Real input A must be numeric, real, and full.
Can anyone shed some light as to where I am going wrong?
  3 Comments
Stephen23
Stephen23 on 18 Dec 2019
You use parentheses to access the two S21xxx tables, which the MATLAB documentation
makes clear, returns a table. But complex is not defined for table inputs.
To get the contents of that table (e.g. a numeric array) you need to use the correct indexing: curly braces {} or dot notation with the specific variable names.

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 18 Dec 2019
Since you used table, you need to run
S21complex = complex(S21real.Var2, S21imag.Var2)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by