mwArray& varargin initialize

6 visualizaciones (últimos 30 días)
mat
mat el 23 de Nov. de 2011
function plotSignals(varargin)....end
I use mcc to convert it to C++ syntax. varargin is a variable parameter,it can receive dynamic parameters,but in MFC type of varargin is mwArray, how can I initialize this variable? I need to convert three strings to varargin.
I have tried this:
const char* str2[]={"EngSpeed","CurrentGear","filename"};
mwArray my_struct(3,1,3,str2);
but it doesnot make a difference....
Thank you for your help!

Respuesta aceptada

Kaustubha Govind
Kaustubha Govind el 23 de Nov. de 2011
You need to create a cell array as follows:
mwArray input(1, 3, mxCELL_CLASS);
mwArray arg1("EngSpeed");
mwArray arg2("CurrentGear");
mwArray arg3("filename");
input.Get(1,1).Set(arg1);
input.Get(1,2).Set(arg2);
input.Get(1,3).Set(arg3);
Also, this Technical Solution explains the answer with an example.
  1 comentario
mat
mat el 26 de Nov. de 2011
Thank you for your kind help, it works!
I find the description of varargin and varargout in Matlab compiler guide:
"If your MATLAB function interface uses varargin or varargout, you must
pass them as cell arrays. For example, if you have N varargins, you need
to create one cell array of size 1-by-N. Similarly, varargouts are returned
back as one cell array. The length of the varargout is equal to the number
of return values specified in the function call minus the number of actual
variables passed. As in the MATLAB software, the cell array representing
varagout has to be the last return variable (the variable preceding the first
input variable) and the cell array representing varargins has to be the last
formal parameter to the function call."

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 23 de Nov. de 2011
varargin is a function, therefore I cannot imagine, why or how ou could initialize it. varargin replies a cell and perhaps you want to create a {1 x 3} cell vector and insert the three strings.
  1 comentario
mat
mat el 23 de Nov. de 2011
the definition of this fuction is:
extern LIB_plotSignals_CPP_API void MW_CALL_CONV plotSignals(const mwArray& varargin);
I need to input dynamic parameters through varargin.Now I have to input three strings, but I don't know how to do it correctly

Iniciar sesión para comentar.

Categorías

Más información sobre Deploy to C++ Applications Using mwArray API (C++03) en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by