Документация Engee

Комплексные числа в Engee и MATLAB

Данная демонстрация нацелена на анализ отличий между комплексными числами в MATLAB и Engee и возможности переноса чисел из одной среды в другую.

using MATLAB
using CSV
using DataFrames

Главное отличие заключается в обозначении мнимой части: в MATLAB это i, а в Engeeim.

Синтаксис формирования самих комплексных чисел идентичен для обеих сред. Есть два варианта задания:

  1. через знак + и символ мнимой части;

  2. через команду complex.

1+1im
1 + 1im
mat"1+1i"
1.0 + 1.0im
Complex_eng = complex(2,2)
2 + 2im
Complex_mat = mat"complex(2,2)"
2.0 + 2.0im

Если передавать комплексные числа внутри скрипта из рабочего пространства MATLAB в Engee, то проблем при переносе не возникает: перевод из одной среды в другую выполняется автоматически. Но для обратного действия необходимо воспользоваться командами real, imag и complex.

r = real(Complex_eng)
i = imag(Complex_eng)
print("real: ",r,", imag: ",i)
real: 2, imag: 2
mat"complex($r,$i)"
2 + 2im

Также есть нюансы при чтении из файла. Рассмотрим парсинг файла с мнимыми числами на примере TXT.

path = @__DIR__ # каталог, где лежит текущий скрипт
"/user/start/examples/base_simulation/complex_numbers"

Запишем комплексное число в текстовый документ из MATLAB.

mat"csvwrite($path + string('/Data.txt'),2+3i)"

Посчитаем это значение в Engee.

txt = open(io->read(io, String), path * "/Data.txt")
"2+3i\n"

Таким образом, мы посчитали строку, содержащую комплексное число в MATLAB. Напишем функцию её парсинга.

parse(ComplexF64,txt)
2.0 + 3.0im

Вывод

В данной демонстрации мы разобрали, как взаимодействовать с комплексными числами в двух средах разработки, а именно MATLAB и Engee. А также изучили возможности пересылки комплексных чисел между этими двумя средами.