matlab分段函数怎么表示

我要表示一个函数其中Pomax=9;请问我的程序哪儿出错了t=0:0.01:270;ift<=150p=7.11.*(t.^0.048);elsep=(exp(3.15-... 我要表示一个函数

其中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)
展开
 我来答
lhmhz
高粉答主

2014-04-12 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16988

向TA提问 私信TA
展开全部

你的程序出错问题,主要是每次计算的结果没有存放到对应变量数组内,所以执行结果只是一点,即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)就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3c63e6c
2014-04-12 · TA获得超过2847个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2747万
展开全部
你的p是一个数

p(t)=7.11.*(t.^0.048);
p(t)=(exp(3.15-0.021*t))*9;
这么写试试
更多追问追答
追问
没有用,图出不来,变量空间不给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)
这个呢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式