Что значит 0,2104 + 0,0000i в MATLAB - PullRequest
0 голосов
/ 08 октября 2019

Некоторые результаты в MATLAB кажутся очень странными,

Я получаю вектор чисел, подобный этому:

0.2104 + 0.0000i
0.8404 + 0.0000i
0.2564 + 0.0000i
...

Как я могу преобразовать их в обычный набор чисел?

Я заканчиваю оценку максимального правдоподобия и записываю p-значения

вот более длинный список чисел из моих 5000

0.210375413 0.210375412872214 + 0.00000000000000i
0.053300966 0.0533009655998162 + 0.00000000000000i
0.569707287 0.569707286911292 + 0.00000000000000i
0.789479544 0.789479543799722 + 0.00000000000000i
0.792401416 0.792401416159656 + 0.00000000000000i
0.449510767 0.449510766546419 + 0.00000000000000i
0.967223276 0.967223275937553 + 0.00000000000000i
0.365126323 0.365126322610076 + 0.00000000000000i
0.572278247 0.572278247118208 + 0.00000000000000i
0.462192501 0.462192500844107 + 0.00000000000000i
0.891594566 0.891594565688343 + 0.00000000000000i
0.509256161 0.509256160918297 + 0.00000000000000i
0.195843938 0.195843938121061 + 0.00000000000000i
0.446937982 0.446937981596096 + 0.00000000000000i
0.715944643 0.715944642525015 + 0.00000000000000i
0.041095144 0.0410951439103705 + 0.00000000000000i
0.565493597 0.565493596672335 + 0.00000000000000i
0.110642354 0.110642353871931 + 0.00000000000000i
0.538977891 0.538977891429440 + 0.00000000000000i
0.633743323 0.633743322903976 + 0.00000000000000i
0.573735606 0.573735606007466 + 0.00000000000000i
0.776896023 0.776896022759461 + 0.00000000000000i
0.685299218 0.685299218035155 + 0.00000000000000i
0.273675891 0.273675891163331 + 0.00000000000000i
0.713439449 0.713439449399772 + 0.00000000000000i
0.778393872 0.778393872231057 + 0.00000000000000i
0.291038278 0.291038277535648 + 0.00000000000000i
1   0.999999999954056 - 750325.850663069i
0.884944383 0.884944383017724 + 0.00000000000000i
0.202998566 0.202998565584345 + 0.00000000000000i

Это только это одно число 0.999999999954056 - 750325.850663069iво всей 5000, что кажется выключенным. Могу ли я просто игнорировать воображаемую часть там?

1 Ответ

5 голосов
/ 08 октября 2019

Вы получаете комплексные числа . Я полагаю, вы хотите реальные цифры. Вы можете сделать это, используя функцию real(). real() захватит «реальную» часть комплексного числа, число, которое состоит из действительных и мнимых частей, как real+imaginary, часто мнимую часть, помеченную как i, так что вы не думаете, что это сумма.

Однако, обратите внимание: если это результат некоторых вычислений, вполне вероятно, что выполняемые вами математические вычисления приводят к мнимым / комплексным числам (например, sqrt(-1) приводит к 1i или просто i). Из-за отсутствия у вас знаний о том, что такое комплексные числа, и удивления от их нахождения, я подозреваю, что математика, которая приводит к этим результатам, не должна возвращать комплексные числа, и существует высокая вероятность того, что в вашем коде есть ошибка.

...