Добавить в корзинуПозвонить
Найти в Дзене
SkyNet | Новости ИИ

Запуск кода в стиле MATLAB внутри Python с помощью подключения Octave через библиотеку oct2py

Запуск кода в стиле MATLAB внутри Python с помощью подключения Octave через библиотеку oct2py В этом руководстве мы рассмотрим, как можно без проблем запускать код в стиле MATLAB внутри Python, подключив Octave через библиотеку oct2py. Мы настроим среду в Google Colab, обменяемся данными между NumPy и Octave, напишем и вызовем файлы с расширением .m, визуализируем графики, созданные в Octave, внутри Python и даже поработаем с инструментальными панелями, структурами и файлами .mat. Настройка среды Мы начнём с настройки Octave и необходимых библиотек в Google Colab, убедившись, что у нас есть пакеты Octave-Forge и зависимости Python. Затем мы инициализируем сеанс Oct2Py и определим вспомогательную функцию, чтобы мы могли отображать графики, созданные в Octave, непосредственно в нашем рабочем процессе Python. Основные операции Мы тестируем мост между Python и Octave, выполняя базовые матричные операции, разложение на собственные значения и тригонометрические вычисления непосредственн

Запуск кода в стиле MATLAB внутри Python с помощью подключения Octave через библиотеку oct2py

В этом руководстве мы рассмотрим, как можно без проблем запускать код в стиле MATLAB внутри Python, подключив Octave через библиотеку oct2py. Мы настроим среду в Google Colab, обменяемся данными между NumPy и Octave, напишем и вызовем файлы с расширением .m, визуализируем графики, созданные в Octave, внутри Python и даже поработаем с инструментальными панелями, структурами и файлами .mat.

Настройка среды

Мы начнём с настройки Octave и необходимых библиотек в Google Colab, убедившись, что у нас есть пакеты Octave-Forge и зависимости Python. Затем мы инициализируем сеанс Oct2Py и определим вспомогательную функцию, чтобы мы могли отображать графики, созданные в Octave, непосредственно в нашем рабочем процессе Python.

Основные операции

Мы тестируем мост между Python и Octave, выполняя базовые матричные операции, разложение на собственные значения и тригонометрические вычисления непосредственно в Octave. Затем мы обмениваемся массивами NumPy с Octave для выполнения сверточного фильтра и проверяем его форму.

Работа с ячейками и структурами

Мы демонстрируем, как передавать списки Python в Octave в виде массивов ячеек, создавать структуру и извлекать её обратно в Python для беспрепятственного обмена данными.

Написание и вызов файлов .m

Мы пишем собственный файл gradient_descent.m в Octave, вызываем его из Python с nout=2 и подтверждаем, что мы восстанавливаем разумные веса и уменьшающуюся потерю. Затем мы визуализируем затухающий синусоидальный график в автономном режиме в Octave и отображаем сохранённый PNG-файл в нашем блокноте Python.

Пакеты (signal/control)

Мы загружаем пакеты signal и control, чтобы спроектировать фильтр Баттерворта в Octave и визуализировать отфильтрованный сигнал обратно в Python.

Обработчики функций

Мы работаем с обработчиками функций, оценивая анонимную квадратичную функцию внутри Octave и, для надёжности, определяем именованную quadfun.m, которую вызываем из Python, показывая как вызовы на основе дескрипторов, так и вызовы на основе файлов в одном потоке.

Ввод-вывод данных .mat

Мы обмениваемся файлами .mat между Python и Octave, подтверждая, что данные передаются в обе стороны без проблем.

Обработка ошибок

Мы тестируем обработку ошибок, перехватывая ошибку Octave как исключение Python.

Простой бенчмарк Octave

Мы сравниваем векторную сумму и сумму в цикле в Octave, показывая преимущество векторизации.

Многофайловый конвейер

Мы строим многофайловый конвейер, который применяет фильтрацию и обнаружение огибающей, возвращая ключевые статистические данные в Python.

В заключение мы видим, как можно интегрировать функции MATLAB/Octave, совместимые с MATLAB, непосредственно в Python и Colab. Мы успешно тестируем обмен данными, пользовательские функции, построение графиков, использование пакетов и бенчмаркинг производительности, демонстрируя, что мы можем смешивать рабочие процессы MATLAB/Octave с Python, не выходя из нашего блокнота.

Проверьте полные коды здесь.

GitHub: [GitHub Page for Tutorials, Codes and Notebo...

Читать далее