engPutVariable()...how long and what workspace
1 view (last 30 days)
Show older comments
Samuel Gray on 10 Mar 2022
I'm trying to use engPutVariable and engGetVariable to transfer blocks of data between C and a Matlab engine.
Two related questions.
First if I create an engine pointer and then a mxArray in C and use mxGetPr or GetVariable for say a real DP array, and the pull function returns, is this blocking or non-blocking? Is this supposed to mean that the source Matlab base workspace variable or array is now in a complete, valid copy in C memory?
Second, how does this still work if I just open the engine but do not actually use say engExecuteString(), but still use mxPut-style calls to push data from C to Matlab? I'm wondering just how long after the mxPut returns in C, do I have to wait before I can rely on the data-transfer being complete in Matlab. Is there some relation between time and the size in Bytes of the transfer?
Find more on Call MATLAB from C in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!