Matlab plotting of a trapezoidal cuve

2 次查看(过去 30 天)
Hello.. I want to plot a trapezoidal curve which is attached here. For that I have written following code but while plotting the value of pressure is not coming as a vector it is giving only a vector of only five value.I am not getting where is my fault plz help....
t(1)=0;
pl=.5;
ph=1.5;
f=2;
h=.1;
t1=0.45/f;
t2=t1+(.15/f);
t3=t2+(0.23/f);
t4=t3+(0.17/f);
%t=t1+t2+t3+t4
tau=1/f;
%p=zeros(1,101);
p(1)=0;
pavg=(ph+pl)/2;
pamp=(ph-pl)/2;
for m=1:1:10
if (t(m)>= 0) && (t(m) <= t1)
p(m+1)=pl+(((ph-pl)/t1)*t(m));
elseif(t(m)>= t1) && (t(m) <= t2)
p(m+1)=ph;
elseif(t(m)>= t2) && (t(m) <= t3)
p(m+1)=ph+(((pl-ph)/(t3-t2))*(t(m)-t2));
elseif(t(m)>= t3) && (t(m) <= t4)
p(m+1)=pl;
end
t(m+1)=t(m)+1;
end end

回答(1 个)

Satyajeet Sasmal
Satyajeet Sasmal 2015-12-15
Hi Debashish,
I assume that you want to plot (p,t). But p just has 2 elements and that is why it does not allow it to be plotted against "t". You only get 2 values for p because the control inside the for-loop does not execute some of the if-elseif conditions. In fact, it only enters the if-elseif condition block on only 2 occasions and so you get only 2 values for p. Try giving an else condition to the if-elseif block and assign some value to p in such cases. Once "p" and "t" are the same length, you should be able to plot them.
-Satya

类别

Help CenterFile Exchange 中查找有关 Mapping Toolbox 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by