How to define the <SHAPE> of an array with variable size in a c++ clib function?

2 次查看(过去 30 天)
Hi,
I am trying to build a c++ clib.
After running:
clibgen.generateLibraryDefinition(...)
I get a definemylib.mlx.
There I have to define the shape of the function input:
defineArgument(mycppfunctionDefinition, "myarray", "clib.array.mylib.Double", "input", <SHAPE>)
In my c++ file, the corresponding function is defined as:
void mycppfunction(double myarray[]);
Because the size of myarray changes in matlab, I do not know how to define the <SHAPE>.
but I did not find an answer, if the size is unknown / changing...
Can anyone give me a tip, how to solve this problem?
Best regards.

采纳的回答

JoRo
JoRo 2023-3-7
In case anyone faces the same issue: I solved the problem.
I had to redefine the c++ function to:
void mycppfunction(double myarray[], size_t len);
Then I had to add "len" to the definemylib.mlx file to:
defineArgument(mycppfunctionDefinition, "myarray", "clib.array.mylib.Double", "input", "len").
Now it works.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Call C++ from MATLAB 的更多信息

标签

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by