保留matlab循环过程中的数值并输出每次循环结果与循环次数的图像

syms Rm Pb Rb;
Rm=input('燃料量:');
Ut=input('阀门开度:');
Pb=16.7;
Ne=313.22;
Rb=47.12;
t=input('计算时间(s):');
for i=2:1:18;
Rb=(-1*Rb+Rm)/120*(i+1-i)+Rb;
end;
for i=2:1:t;
Rb=(-1*Rb+Rm)/120*(i+1-i)+Rb;
Pt=Pb-0.000455*(6.77*Rb)^1.3;
Pb=(-0.2501*Pt*Ut+6.77*Rb)/3266*((i+1-i))+Pb;
Ne=(-1*Ne+0.2501*Pt*Ut)/12*((i+1-i))+Ne;
end
Pb;
Ne;
Pt;
是这样子,我想得到每次循环过程中的Pt和Ne,并且最终可以输出循环次数与相对应的Pb和Ne的二维坐标图

Pt比Pb、Ne少了一个的初值,你试一下,看可以不:

clc,clear,close all

% syms Rm Pb Rb;

Rm=input('燃料量:');

Ut=input('阀门开度:');

Pb(1)=16.7;

Ne(1)=313.22;

Rb(1)=47.12;

t=input('计算时间(s):');

for i=2:1:18;

    Rb(1)=(-1*Rb(1)+Rm)/120*(i+1-i)+Rb(1);

end;

for i=2:1:t;

    Rb(i)=(-1*Rb(i-1)+Rm)/120*(i+1-i)+Rb(i-1);

    Pt(i)=Pb(i-1)-0.000455*(6.77*Rb(i))^1.3;

    Pb(i)=(-0.2501*Pt(i)*Ut+6.77*Rb(i))/3266*((i+1-i))+Pb(i-1);

    Ne(i)=(-1*Ne(i-1)+0.2501*Pt(i)*Ut)/12*((i+1-i))+Ne(i-1);

end

Pb 

Ne 

Pt;

n=1:i;

[ax,h1,h2]=plotyy(n,Pb,n,Ne);

grid on

xlabel('循环次数n');

set(get(ax(1),'Ylabel'),'String','Pb含量');

set(get(ax(2),'Ylabel'),'String','Ne含量');

效果:

燃料量:6539

阀门开度:0.8

计算时间(s):20


Pb =


  Columns 1 through 15 


   16.7000   18.6809   20.7582   22.9313   25.1992   27.5612   30.0166   32.5644   35.2040   37.9346   40.7554   43.6656   46.6645   49.7514   52.9255


  Columns 16 through 20 


   56.1861   59.5325   62.9639   66.4796   70.0789



Ne =


  Columns 1 through 15 


  313.2200  286.7148  262.4080  240.1175  219.6769  200.9333  183.7468  167.9890  153.5423  140.2988  128.1598  117.0346  106.8403   97.5006   88.9459


  Columns 16 through 20 


   81.1122   73.9409   67.3782   61.3749   55.8858

追问

太感谢了,我会加分的,赞!还想问一下如果我要显示Pt的话,就需要在开始给Pt也附一个初值吗,就像给Pb那样?

追答

Pt比Ne Pb少了一个值,你把最后出现的Pt后的分号去掉就可以看到循环过程中的Pt的值,只是第一个会显示0,如果循环过程中用到上一次的Pt,就要在程序开始的时候给Pt一个初值(这样后面的循环部分要做相应的改动);如果计算方法就是现在的这样,则没有必要赋初值,算法也不用改,只要把最后出现的Pt后的分号去掉就可以看到循环过程中的Pt的值

温馨提示:答案为网友推荐,仅供参考
相似回答