Problem with complex number multiplication and division
22 views (last 30 days)
Show older comments
Hello, thanks for looking at this, this is potentially a very stupid question.
I'm having a problem with signs for complex conjugates when I multiply complex numbers two ways. In the first way, I have a simple calculation:
Rws(n,m)+j*w(m)*Iws(n)-Cws(n,m)*j/w(m)
to give me a value (in this case, it was 1.366e+09 + 5.937e+09i). My matrices are [9 800] in size, and I wanted to not do this in loops, but instead vectorize the calculation. So, instead, I change it to this:
Rws+j*Iws*w-bsxfun(@rdivide, Cws*j, w);
and I get the same answer with a small twist: the sign on the complex number was switched (1.366e+09 - 5.937e+09i). This change in sign is prevalent in all other members in the matrix, but the calculation was identical. In this, Rws is a 9x800 matrix, Iws is a 9x1 vector, w is a 1x800 vector, and Cws is a 9x800 matrix.
I can bypass this problem by switching the addition with the subtraction in the second equation, but I wanted to know if there was a reason I was getting this mismatched sign. Any ideas?
Thanks for your help, I think I'm just missing something simple here.
EDIT: Included some matlab files for clarification, use run_it to run the program, check for the variables _forloop and _vectorized for reporting.
3 Comments
John D'Errico
on 12 Oct 2015
My guess is you transposed something along the way. Since you have not actually shown us an explicit example, so we cannot know.
Answers (0)
See Also
Categories
Find more on Logical 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!