我要表示一个函数
其中Pomax=9;
请问我的程序哪儿出错了
t=0:0.01:270;
if t<=150
p=7.11.*(t.^0.048);
else p=(exp(3.15-0.021*t))*9;
plot(t,p)
自己调出来了
>> t=0:0.01:270;
>> p=(t<=150).*(7.11*(t.^0.048))+(t>150).*((exp(3.15-0.021*t))*9);
>> plot(t,p)
你的程序出错问题,主要是每次计算的结果没有存放到对应变量数组内,所以执行结果只是一点,即t=270时的(t,Po)。
解决的办法有:
1、建立自定义函数piecewise(x) 分段函数,即piecewise。m
在命令窗口下,输入
>> t=0:0.01:270;
>> P0=piecewise(t);
>> plot(t,P0,'r-'),xlabel('t'),ylabel('P_0')
2、用while循环语句,将每次计算值,存放在数组内,然后用plot()画出(t,Po)曲线图。
答题不易,采纳后可发m文件代码。敬请谅解。
追问我的M文件如下
调用函数如下
t=0:0.01:270;
>> Po=biye(t);
出来的图是不对的
把[y]=biye(x)改成y=biye(x)就行了
追问改了没改变,图是这样的
能把你编的M函数文件给我看看吗?谢谢了
请你重新提问好吗?
追问没有用,图出不来,变量空间不给P分配空间
追答t=0:0.01:270;
for i=1:length(t)
if t(i)<=150
p(i)=7.11.*(t.^0.048);
else
p(i)=(exp(3.15-0.021*t))*9;
plot(t,p)
这个呢
试了一下还是不行,给t分配了空间但是p还是没有空间的
t=0:0.01:270;
for i=1:27001
if t(i)<=150
p(i)=7.11.*(t(i).^0.048);
else
p(i)=(exp(3.15-0.021*t(i)))*9;
end
end
plot(t,p)
自己调出来了,不过还是谢谢啦
本回答被提问者采纳