MEX: no stdout in release

I build my mex file with VS2019. I do my output with
cout << "hi" << endl;
When I build in release version, it outputs fine to matlab's console; in debug build it doesn't.

2 Kommentare

Lukas
Lukas am 25 Jan. 2024
Same here. Is there any update on this?
Zohar
Zohar am 25 Jan. 2024

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Harsh
Harsh am 26 Aug. 2024

0 Stimmen

Hi @Lukas and @Zohar,
It seems you're attempting to print strings from C++ to MATLAB.
Here are a few alternatives you might consider:
  • Use "mexPrintf " Instead of cout: You can replace "cout" with "mexPrintf " to print directly in MATLAB. Here's an example of how to use "mexPrintf":
#include "mex.h"
void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) {
mexPrintf("This prints in MATLAB again!!\n");
}
  • Error Encountered in Visual Studio: On attempting the same, I noticed an issue where, after running the MEX function along with the C++ file, and then trying to rebuild, an error appears in Visual Studio.
Initially, I executed the MEX file in MATLAB. Subsequently, when I attempted to build again in Visual Studio, I encountered the following error:
This error occurs irrespective of whether you are in release or debug mode. Even when executing the MEX file from the release folder, the error persists.
  • Solution: A simple way to resolve this issue is to restart MATLAB. After doing so, the build process is completed successfully.
(As shown here, the build completes successfully even in debug mode.)
I hope this information is helpful. Thank you!

Kategorien

Mehr zu Write C Functions Callable from MATLAB (MEX Files) finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 7 Jul. 2020

Beantwortet:

am 26 Aug. 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by