Я хочу передать на C# функцию, которая вычисляет векторный угол выражения из MATLAB, angle()
. Я обнаружил, что angle(x+yi)=atan2(y,x)
, но вот моя проблема, у меня есть квадратный корень, который в зависимости от значений, которые я даю, является либо положительным, либо отрицательным. Но в MATLAB, если функция sqrt получает отрицательное значение, она возвращает воображаемое, в отличие от C#, где она возвращает NaN.
Итак, как я могу заставить два кода давать одинаковый результат?
т.е. МАТЛАБ:
angle(a*1i-sqrt(expression))
C#:
Mathf.Atan2(a,-sqrt(expression))
(что я делаю и считаю неправильным)