24小时热门版块排行榜    

查看: 1323  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

vehicle_Yang

木虫 (正式写手)

[求助] embedded matlab function 模块中,外部输入如何传递到子函数中去已有1人参与

function [y1,y2] = fcn(d)
eml.extrinsic('fmincon');
persistent n
n=d;
x=zeros(2,1);
[x]=fmincon('myobj',[1 ;1],[1 1],2,[],[],[0;0],[],'mycon')
y1=x(1);
y2=x(2);


function f=myobj(x)
persistent n
f=n*x(1)^2+2*x(2)^2-2*x(1)*x(2)-4*x(1)-6*x(2);


function[c,ceq]=mycon(x)
c=x(1)+5*x(2)^2-5;
ceq=[];

杨小英 2016/4/14 19:32:52
这个程序是将最优算法fmincon嵌入embedded matlab function中
提示错误:
Embedded MATLAB Function/ SFunction ':
Stateflow Runtime Error:  Error using ==> fmincon at 567
User supplied objective function must return a scalar value.
Block Embedded MATLAB Function (#19)
While executing: none.

d赋值为2
我感觉是外部输入传递不到子函数中去,求大神解答
回复此楼
我所认为最深沉的爱,莫过于分开以后。我将自己,活成了你的样子。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霜小妹二

木虫 (正式写手)

哈哈

【答案】应助回帖

引用回帖:
6楼: Originally posted by vehicle_Yang at 2016-04-14 20:02:31
程序中的n传递不到子函数中去,返回值类型为double类型标量...

对啊,标量;可是“[x]”是一个2x1的向量啊(其实你定义为了一个2x1矩阵)。类型都不一样,怎么返回啊?
没事儿就进行交流~
8楼2016-04-14 20:05:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

霜小妹二

木虫 (正式写手)

哈哈

【答案】应助回帖

感谢参与,应助指数 +1
建议你把代码中“[x]”换成一个没用过的变量。真不知道“[x]”是什么意思~
没事儿就进行交流~
2楼2016-04-14 19:53:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vehicle_Yang

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 霜小妹二 at 2016-04-14 19:53:16
建议你把代码中“”换成一个没用过的变量。真不知道“”是什么意思~

[x]在这里是一个输出变量,
我所认为最深沉的爱,莫过于分开以后。我将自己,活成了你的样子。
3楼2016-04-14 19:56:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霜小妹二

木虫 (正式写手)

哈哈

【答案】应助回帖

还有就是,你得确认一哈fmincon的返回值类型;到底是什么。能否给我看看其定义~

» 本帖已获得的红花(最新10朵)

没事儿就进行交流~
4楼2016-04-14 19:57:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见