У меня очень большая структура данных в некотором коде Matlab, который находится в виде ячеек массивов. Мы хотим разработать C-код для работы над этими данными, но мне нужно каким-то образом сохранить переменную Matlab (которую мы сгенерируем в Matlab) и открыть ее в программе C/C++. Что является самым простым способом свести две программы, чтобы я мог передавать данные?Перенос переменных Matlab в C
ответ
Если вы только перемещаете данные с MATLAB на C, то проще всего записать его в двоичный файл, а затем прочитать из файла в C. Это, конечно, оставляет код C полностью независимым от MATLAB.
Это не должно быть бесполезным, если ваша структура данных представляет собой только массив ячеек регулярных массивов, например.
a{1} = zeros(1,5);
a{2} = zeros(1,4);
Вы можете просто написать заголовок для каждой ячейки, а затем данные в файл. В приведенном выше случае, это было бы:
[length{1} data{1} length{2} data{2}]
В приведенном выше случае:
5 0 0 0 0 0 4 0 0 0 0
Если массивы 2D, вы можете расширить это в письменной форме: строка, столбец, то данные в строке - основной порядок для каждой ячейки.
Это может быть не совсем удобно, но должно быть достаточно простым. Вы также можете сохранить его как файл .mat и прочитать это, но я бы не рекомендую это. Гораздо проще поставить его в двоичном формате в MATLAB.
Если вам нужно переместить данные чаще, чем удобно для файла, есть и другие варианты, но все, о чем я могу думать, связано каким-то образом с MATLAB.
Вы должны использовать MEX файлы:
Если эти два процесса необходимо соединить в течение их жизненного цикла, у вас есть много вариантов:
- Compile Matlab DLL.
- Использование двигателя Matlab.
- Compile MEX файл (как @Oli упоминалось ранее)
Если связь отсутствует (После того, как Matlab закрывается, C++ начинает читать), то вы должны использовать файловую систему. Попробуйте отформатировать его в XML, это хорошо зарекомендовавший себя стандарт.
- 1. C++ Перенос переменных между кнопками
- 2. Перенос MWCellArray из C# в Matlab
- 3. C# - Передача переменных в Matlab
- 4. Матрица переменных переменных MATLAB
- 5. Tensorflow: перенос переменных по графикам
- 6. Перенос переменных файла конфигурации PHP?
- 7. PHP и AJAX перенос переменных
- 8. Перенос и использование встроенной функции Matlab в файл mex C++
- 9. Перенос меток переменных в значения переменных в SPSS/Python
- 10. Использование глобальных переменных в matlab
- 11. Преобразование функций Javascript в перенос переменных объектов
- 12. Перенос переменных статического класса в java
- 13. Перенос значений переменных из Form1 в Form2
- 14. перенос нескольких переменных в другой ViewController
- 15. Ограничение количества переменных Matlab
- 16. Перенос и изменение трехмерного массива в matlab
- 17. Синтаксис Cbprice (перенос из Excel в MATLAB)
- 18. динамические имена переменных в matlab
- 19. Matlab: серия переменных в петле
- 20. Сохранение глобальных переменных в Matlab
- 21. подавление выходных переменных в matlab
- 22. Создать массив переменных в Matlab
- 23. Объявление глобальных переменных в Matlab
- 24. Настройка переменных Решить в MATLAB
- 25. MATLAB замена символических переменных
- 26. Matlab - печать нескольких переменных
- 27. Градиент Matlab при отсутствии переменных
- 28. Перенос переменных между моделями с использованием вида
- 29. Использование getElementByClassName и перенос переменных через форму
- 30. Определить несколько переменных одновременно в MATLAB
Код C должен быть независимым от Matlab. Мы используем Matlab для генерации входных значений. Даже что-то такое же простое, как печать их в файл и чтение их с помощью кода C, будет вариантом, но поскольку они являются большими ячейками матриц, это уродливое решение, и мне было интересно, есть ли лучший метод. – ras2124