matlab 删除最后一行,高手帮下忙啊!看一下程序最后一行哪错了

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

高手帮下忙啊!看一下程序最后一行哪错了

高手帮下忙啊!看一下程序最后一行哪错了

运行后说最后一行“end”expected, "End of Input" found.

function [x,f]=ILp(c,A,b,vlb,vub,x0,neqcstr,pre)

if nargin<8,pre=0;

if nargin<7,neqcstr=0;

if nargin<6,x0=[ ];

if nargin<5,vub=[ ];

if nargin<4,vlb=[ ];

end,end,end,end

x0=xo(:);c=c(:);b=b(:);vlb=vlb(:);vub=vub(:);

mm=1;j=1;nvars=length(c');

fvubping;xall=[ ];fall=[ ];x_f_b=[ ];

[xtemp ztemp,how]=lp(c,A,b,vlb,vub,x0,neqcstr,-1);

ftemp=c'*xtemp;

if strcmp(how,'ok');

temp0=round(xtemp);temp1=floor(xtemp);

temp2=find(abs(xtemp-temp0)>pre);

mtemp=length(temp2);

if ~isempty(temp2)

x_f_b=[xtemp;ftemp;vlb;vub];

while j<=mm

i=1;

while i<=mtemp

if x_f_b(nvars+1,j)<=fvub

vlb1=x_f_b(nvars+2:2*nvars+1,j);

vub1=x_f_b(2*nvars+2:3*nvars+1,j);

vub1(temp2(i))=temp1(temp2(i));

[xtemp z,how]=lp(c,[A;c'],[b;fvub],...

vlb1,vub1,x0,neqcstr,-1);

ftemp=c'*xtemp;

if strcmp(how,'ok')

temp10=round(xtemp);temp11=floor(xtemp);

temp12=find(abs(xtemp-temp10)>pre);

if isempry(temp12),

xall=[xall,xtemp];fall=[fall,ftemp];

fvub=min([fvub,fall]);

elseif ftemp<=fvub

x_f_b=[x_f_b,[xtemp;ftemp;vlb1;vub1]];

end,end,end

if x_f_b(nvars+1,j)<=fvub

vlbr=x_f_b(nvars+2:2*nvars+1,j);

vlbr(temp2(i))=temp1(temp2(i))+1;

vubr=x_f_b(2*nvars+2:3*nvars+1,j);

[xtemp z,how]=lp(c,[A,c'],[b;fvub],vlbr,vubr,x0,neqcstr,-1);

ftmp=c'*xtemp;

if strcmp(how,'ok'),

tempr0=round(xtemp);tempr1=floor(xtemp);

tempr2=find(abs(xtemp-tempr0>pre));

if isempty(tempr2),

xall=[xall,xtemp];fall=[fall,ftemp];

fvub=min([fvub,fall]);

elseif ftemp<=fvub

x_f_b=[x_f_b,[xtemp;ftemp;vlbr;vubr]];

end,end,end

i=i+1;end

xint= x_f_b(1:nvars,:);[m,mm]=size(xint);j=j+1;

if j>mm,break,end

temp0=round(xint(:,j));temp1=floor(xint(:,j));

temp2=find(abs(xint(:,j)-temp0)>pre);

mtemp=length(temp2);end,

else,x=xtemp;f=ftemp;end,

if ~isempty(fall)

fmin=min(fall);nmin=find(fall==fmin);

x=xall(:,nmin);f=fmin;end,

else,x=nan*ones(1,nvars);end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值