matlab 简单程序问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 02:26:18
gravity=9.81;p0=101330;R=287.13;
tempC=[15,-56.5,-56.5,-44.5,-2.5];
z=[0,11000,20100,32200,47300];
invertemp=1./(tempC+273.15);
np=18;
goverR=gravity/R;
elevation=linspace(0,z(end),np);
pressure=zeros(1,np);
intarg=inline('interp1(z,invertemp,elevation)','elevation','z','invertemp');
for i=1:np
pressure(i)=p0*exp(-goverR*quadl(intarg,0.1,elevation(i),[],[],z,...inversetemp));
end
subplot(1,2,1)
plot(tempC,z/1000.0,'k-s')
axis([-60 20 0 elevation(end)/1000.0])
xlabel('Temperature(C)')
ylabel('Elevation(km)')
subplot(1,2,2)
plot(pressure/1000.0,elevation/1000.0,'k')
axis([0,110,0,elevation(end)/1000.0])
ylabel('Elevation(km)')
xlabel('Pressure(kPa)')

??? Error: File: C:\Users\Administrator\Desktop\Untitled3.m Line: 12 Column: 4
Incomplete or misformed expression or stat

pressure(i)=p0*exp(-goverR*quadl(intarg,0.1,elevation(i),[],[],z,...inversetemp));
这句里边的inversetemp这个变量是不存在的,所以即使没有语法错误也不能执行。估计可能是invertemp这个变量,修改为:
pressure(i)=p0*exp(-goverR*quadl(intarg,0.1,elevation(i),[],[],z,invertemp)); 这样就好了

另:matlab中的 “...”用在一行的末尾,表示后面的内容不再编译,且本命令行未结束,在下一行继续本命令行的内容。所以那句才会出错的,提示命令行不完整。你在matlab的界面中,会看到 ... 后面的字和被 % 注释掉的一个颜色。

for i=1:np
pressure(i)=p0*exp(-goverR*quadl(intarg,0.1,elevation(i),[],[],z,...inversetemp));
end
改成
for i=1:np
pressure(i)=p0*exp(-goverR*quadl(intarg,0.1,elevation(i),[],[],z,invertemp));
end