Example MATLAB class wrapper for a C++ class

An example of how to safely encapsulate a C++ class in a MATLAB class, via a mex interface.
8,2K Downloads
Aktualisiert 15. Feb 2023

Anmerkung des Herausgebers: This file was selected as MATLAB Central Pick of the Week

This package provides an example of how to wrap a C++ class in a MATLAB class, via a mex interface, safely, without memory leaks, whilst achieving an interface in MATLAB that is similar to the underlying C++ interface.
After downloading, call:
>> run_example
in MATLAB to see an example implementation in action.

Look in run_example.m, example_mex.cpp (and optionally example_interface.m if you don't want to use the standard interface) to see how this is implemented, and copy the structure to interface with your own C++ classes.

This submission is inspired by the following newsgroup thread:
http://www.mathworks.com/matlabcentral/newsreader/view_thread/278243
Thanks to all those who have contributed.

Zitieren als

Oliver Woodford (2026). Example MATLAB class wrapper for a C++ class (https://github.com/ojwoodford/mex_class_wrapper/releases/tag/v1.4.1), GitHub. Abgerufen.

Kompatibilität der MATLAB-Version
Erstellt mit R2012b
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS Linux
Kategorien
Mehr zu Call C++ from MATLAB finden Sie in Help Center und MATLAB Answers
Version Veröffentlicht Versionshinweise
1.4.1

See release notes for this release on GitHub: https://github.com/ojwoodford/mex_class_wrapper/releases/tag/v1.4.1

1.4.0.0

Added a standard interface to avoid needing an interface class per mex wrapper. Also added an example script.

1.3.0.0

Add #includes suggested by Richard Crozier (thanks) to fix compilation in Linux.

1.2.0.0

2nd attempt to fix compilation under linux.

1.1.0.0

Fix compile error in Linux - thanks to Andreas for highlighting the issue.

1.0.0.0

Um Probleme in diesem GitHub Add-On anzuzeigen oder zu melden, besuchen Sie das GitHub Repository.
Um Probleme in diesem GitHub Add-On anzuzeigen oder zu melden, besuchen Sie das GitHub Repository.