首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >codegen和标量结构参数

codegen和标量结构参数
EN

Stack Overflow用户
提问于 2012-11-28 21:51:10
回答 2查看 1.1K关注 0票数 3

Codegen命令如下所示:

代码语言:javascript
复制
codegen -config:dll ep1 -args single(0) ep2 -args {0,0}

对于下面这样的函数来说很容易:

代码语言:javascript
复制
function y = ep1(u) %#codegen
y = u;

function y = ep2(u, v) %#codegen
y = u + v;

我只是想知道如何定义标量结构参数。让我们假设上面的参数u应该看起来像这样(即由两个字段组成-一个字符和一个双精度):

代码语言:javascript
复制
u.FirstName = 'Loren';
u.Height = 150

PS:

我找到了类似这样的东西:

代码语言:javascript
复制
s = struct('a',42,'b',4711);
codegen topfun.m -args { s }

这会是一个解决方案吗?我相信,这是一个例子的定义。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-29 16:48:51

这似乎对我很有效:

代码语言:javascript
复制
codegen -report -config:dll ep1 ...
                            ep2

实际的“函数签名”(以及标量结构)可以在函数中定义如下:

代码语言:javascript
复制
function [bla] = ep1(parameters)
%#codegen

assert(isstruct(parameters));
assert(isa(parameters.x1,'char'));
assert(size(parameters.x1, 1) >= 1);
assert(size(parameters.x1, 1) <= 1024);
assert(isa(parameters.x2,'double'));
...

我的问题是,我似乎必须在父函数中定义所有参数-尽管我没有在父函数中使用参数。

看看上面的东西。假设ep1是ep2的父函数,而ep1没有使用parameters.x2,我仍然需要在ep1中声明它。希望这是有意义的。

票数 1
EN

Stack Overflow用户

发布于 2016-09-23 15:23:08

可以使用coder.typeof函数捕获结构的定义。

首先使用脚本初始化结构,使用coder.typeof捕获结构定义,然后使用-args传递定义,如下所示:

代码语言:javascript
复制
u = Initialise(u);
p = InitialiseParameters();

tx = coder.typeof(u);
tp = coder.typeof(p);

codegen topfun.m -args {tx, tp} -config:dll 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13606645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档