mwArray& varargin initialize

4 次查看(过去 30 天)
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!

采纳的回答

Kaustubha Govind
Kaustubha Govind 2011-11-23
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 个评论
mat
mat 2011-11-26
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."

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2011-11-23
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 个评论
mat
mat 2011-11-23
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Deploy to C++ Applications Using mwArray API (C++03) 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by