首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在Matlab中编写内联函数

无法在Matlab中编写内联函数
EN

Stack Overflow用户
提问于 2015-08-29 18:47:57
回答 1查看 101关注 0票数 0

无法在Matlab中编写内联聚合函数。X1、X2是数组变量。mb和nb是总线数据的大小。

V是电压函数,δ是角度。

代码语言:javascript
运行
复制
% objf=inline('sum(V(mb)^2+V(nb)^2-2*V(mb)*V(nb)*cos(delta(mb)-delta(nb)))','mb','nb');
% old code running 
objf=inline('4*x1^2-2.1*x1^4+(x1^6)/3+x1*x2-4*x2^2+4*x2^4','x1','x2');**

在内联表达式sum(V(mb).^2+V(nb).^2-2.*V(mb).*V(nb).cos(delta(mb)-delta(nb)))未定义函数'V‘中使用内联表达式*(第15行)中的错误,用于输入'double’类型的参数。内联/subsref(第24行) INLINE_OUT_ = inlineeval(INLINE_INPUTS_,INLINE_OBJ_.inputExpr,INLINE_OBJ_.expr)中的错误;deeee中的错误(第48行) fx=objf(x(:,1),x(:,2));

,其中变量aer定义为.

代码语言:javascript
运行
复制
busdata = bus; % ARRAY OF INPUTs
j=sqrt(-1);
P=[];Q=[];
nb=busdata(:,1);
kb=busdata(:,2);Vm=busdata(:,3);deltad=busdata(:, 4);Pd=0.8*busdata(:,5)/basemva;Qd=.8*busdata(:,6)/basemva;
Pg=busdata(:,7)/basemva;Qg=busdata(:,8)/basemva;Bsh=busdata(:,11);Qmin=busdata(:,9)/basemva;Qmax=busdata(:,10)/basemva;
G=real(Ybus);B=imag(Ybus);slb=find(kb==1);pv=find(kb==2);pq=find(kb==0);pvq=find(kb~=1);npv=length(pv);
npq=length(pq);npvq=length(pvq);nbus=max(nb);
delta(nb) = pi/180*deltad(nb);
V(nb) = Vm(nb).*(cos(delta(nb))+j*sin(delta(nb)))';
P(nb)=(Pg(nb)-Pd(nb));
flag=0;   
EN

回答 1

Stack Overflow用户

发布于 2015-08-29 19:08:54

你锁定的是匿名函数

代码语言:javascript
运行
复制
objf = @(mb,nb)sum(V(mb)^2+V(nb)^2-2*V(mb)*V(nb)*cos(delta(mb)-delta(nb)))

objf = 

    @(mb,nb)sum(V(mb)^2+V(nb)^2-2*V(mb)*V(nb)*cos(delta(mb)-delta(nb)))

objf(1,2)

这样就可以了(只要定义了这个匿名函数的所有其他变量和函数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32289593

复制
相关文章

相似问题

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