Комплексные числа в Engee и MATLAB¶
Данная демонстрация нацелена на анализ отличий между комплексными числами в MATLAB и Engee и возможности переноса чисел из одной среды в другую.
using MATLAB
using CSV
using DataFrames
Главное отличие заключается в обозначении мнимой части: в MATLAB это i, а в Engee – im.
Синтаксис формирования самих комплексных чисел идентичен для обеих сред. Есть два варианта задания:
- через знак + и символ мнимой части;
- через команду complex.
1+1im
mat"1+1i"
Complex_eng = complex(2,2)
Complex_mat = mat"complex(2,2)"
Если передавать комплексные числа внутри скрипта из рабочего пространства MATLAB в Engee, то проблем при переносе не возникает: перевод из одной среды в другую выполняется автоматически. Но для обратного действия необходимо воспользоваться командами real, imag и complex.
r = real(Complex_eng)
i = imag(Complex_eng)
print("real: ",r,", imag: ",i)
mat"complex($r,$i)"
Также есть нюансы при чтении из файла. Рассмотрим парсинг файла с мнимыми числами на примере TXT.
path = @__DIR__ # каталог, где лежит текущий скрипт
Запишем комплексное число в текстовый документ из MATLAB.
mat"csvwrite($path + string('/Data.txt'),2+3i)"
Посчитаем это значение в Engee.
txt = open(io->read(io, String), path * "/Data.txt")
Таким образом, мы посчитали строку, содержащую комплексное число в MATLAB. Напишем функцию её парсинга.
parse(ComplexF64,txt)
Вывод¶
В данной демонстрации мы разобрали, как взаимодействовать с комплексными числами в двух средах разработки, а именно MATLAB и Engee. А также изучили возможности пересылки комплексных чисел между этими двумя средами.