如何在matlab中将循环结果转换为向量或矩阵

时间:2013-04-24 10:50:31

标签: matlab

这是事情: 我有一个while循环嵌套在for循环中。 作为变量flp的结果,我可以得到每次迭代的结果。但现在我希望所有这些结果存储在一个行数与另一个名为eci的变量相同的向量中。我知道我必须预先分配矢量。但是我如何从这里继续前进? 坦克你!

这是我到目前为止所做的代码:

for eci=0:0.0002:ecu
    fl=0;
    fcc=fc0*(2.254*sqrt(1+7.94*fl/fc0)-2*fl/fc0-1.254);
    ecc=ec0*(1+5*(fcc/fc0-1));
    r=Ec/(Ec-fcc/ecc);
    x=eci/ecc;
    fc=fcc*x*r/(r-1+x^r);
    el=(Ec*eci-fc)/(2*beta*fc);
    flp=ke*kr*2*nf*tf*Ef*1000*el/B;
    while abs(fl-flp)>0.0001
        fl=flp;
        fcc=fc0*(2.254*sqrt(1+7.94*fl/fc0)-2*fl/fc0-1.254);
        ecc=ec0*(1+5*(fcc/fc0-1));
        r=Ec/(Ec-fcc/ecc);
        x=eci/ecc;
        fc=fcc*x*r/(r-1+x^r);
        el=(Ec*eci-fc)/(2*beta*fc);
        flp=ke*kr*2*nf*tf*Ef*1000*el/B
    end
end

eci=[0:0.0002:ecu]';
m=size(eci);
m(:,2)=[];
mat_result=zeros(m,1)

1 个答案:

答案 0 :(得分:0)

它非常简洁,以空矢量开头,例如:

results = zeros(length(0:0.0002:ecu),1);

然后在循环中的某个地方开始计算t=t+1(正确初始化)并存储结果:

results(t) = myResult