Problem with complex number multiplication and division
21 次查看(过去 30 天)
显示 更早的评论
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 个评论
John D'Errico
2015-10-12
My guess is you transposed something along the way. Since you have not actually shown us an explicit example, so we cannot know.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!