f.m

来自「市场最优配置」· M 代码 · 共 74 行

M
74
字号
function [flag,c,aa,bb,minmin,maxmax,pp] =f(a,b,min,max,p)
flag=0;
ba=0;
a1=0;
c=0;
pp=p;
for i=1:length(a);
    c(1,i)=a(i);
    c(2,i)=0;
end;

for i=1:length(a);
    ba=ba+b(i)/a(i);
    a1=a1+1/a(i);
end;

s=(2*p+ba)/a1;

for i=1:length(a);
    cp(i)=(s-b(i))/(2*a(i));
end;

for i=1:length(cp);
    if(cp(i)<min(i));
        cp(i)=min(i);
        c(2,i)=cp(i);
        flag=1;
        a(i)=0;
        pp=pp-cp(i);
    end;
    if(cp(i)>max(i));
        cp(i)=max(i);
        c(2,i)=cp(i);
        flag=1;
        a(i)=0;
        pp=pp-cp(i);
    end;
end;
 
if(flag==0);
    for i=1:length(cp);
        c(2,i)=cp(i);
    end;
else;
  
    for i=1:length(a);
        if(a(i)==0);
           b(i)=0;
           min(i)=0;
           max(i)=0;
        end;
    end;
end;

i=1;
j=1;
aa=0;
bb=0;
minmin=0;
maxmax=0;

while(i<=length(a)&&j<=length(a));
    if(a(i)>0);
        aa(j)=a(i);
        bb(j)=b(i);
        minmin(j)=min(i);
        maxmax(j)=max(i);
        i=i+1;
        j=j+1;
    else;
        i=i+1;
    end;
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?