Тренинг Платформа Engee (LTC/MBD)
Интеграция с другими языками программирования
Пример MAT: Перевод файлов MAT в формат JLD2
В Engee можно работать с MAT-файлами, в которых принято сохранять результаты вычислений команд MATLAB. Удобнее всего перевести их из формата .mat в один из форматов, который больше подходит для его содержимого, и с которым вы уже работали в этом курсе. Остановимся на формате JLD2.
Давайте повторим цепочку обработки файла gCosts.mat с помещением всех переменных из этого файла в контейнер gCosts.jld2.
1. Загрузим файл gCosts.mat в окружении MATLAB:
using MATLAB
mat"data = matfile('data/gCosts.mat')"
Мы воспользовались пользуемся функцией matfile чтобы получить список переменных, которые лежат в файле файла, gCosts.mat.
2. Изучим список переменных в этом файле:
mat"whos(data)"
Другой вариант команды: mat"whos('-file', fname)".
3. Загрузим все переменные в окружение Engee:
mat"load data/gCosts.mat"
@mget Australia Canada gal2lit Germany hourlyAus hourlyCan hourlyGer hourlyMex Mexico;
Другой вариант команды: mat"load(fname)".
Переменная Year будет конфликтовать с идентификатором функции Year из библиотеки Dates, поэтому переименуем ее перед переносом в окружение Engee.
mat"Years = Year;"
@mget Years;
Другим решением этой проблемы было бы измерение команды импорта библиотеки Dates, например – вместо команды using Dates использовать команду import Dates и загрузить только необходимые нам функции из этой библиотеки.
Мы также заметили, что перенос переменной country по какой-то причине невозможен.
#@mget country # Unable to save variable 'country' of class 'string' to STDIO.
С этой ситуацией мы справимся следующим образом:
mat"disp(country)"
Скопируем список стран вручную, поместим его в Julia-переменную country:
country = ["Australia" "Canada" "Germany" "Mexico"]
Все переменные созданы, нам остается только сохранить их в файл формата JLD2, которым мы пользовались в ходе выполнения других упражнений: