Matlab doesn't release the C code execution until completion of the script
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Alex Sidorov
el 19 de Abr. de 2022
Editada: Bruno Luong
el 19 de Abr. de 2022
The C app send command to the matlab for script M file launching and the matlab doesn't release the C code execution, return from call function, until the m script completion. How to resolve this issue. How C code can run m script and continue to execute other operators and functions?
ex:
const char ptrMatlabCommandStart[] = "run(\"example.m\")";
ep = engOpen(NULL); // open C2M engine
engEvalString(ep, ptrMatlabCommand) // launch example.m script
a = b; // can't be performed until end of the example.m script
Also very interaesting following implementation of C code functionality:
- pa = mxCreateDoubleScalar(value); // initialize in matlab worklspace by C code
- mxSetDoubles(pa, value); // set value in matlab worklspace by C code
- engEvalString(ep, ptrMatlabCommand); // launch matlab script that use value
for ()
{
4. mxSetDoubles(pa, value); // update value in matlab worklspace by C code and impact to matlab script results
// matlab script computes according to the new value - parameter
// matlab also can change value according to launched script
}
5. value = *mxGetDoubles(pa); // read updated value in C app
0 comentarios
Respuesta aceptada
Bruno Luong
el 19 de Abr. de 2022
Editada: Bruno Luong
el 19 de Abr. de 2022
MATLAB is essential sequential/blocking behavior. Whereas you call a function from C or Matlab yo have to wait until completion.
However if you have recent MATLAB you can run a function (restricted capability) in background and get the hand back instantanously using parfval
0 comentarios
Más respuestas (1)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!