我想根据Matlab中的方程绘制一个三角形。
我为我的三角形创建了等式g
,我需要稍后将其用于卷积。
下图是我想要绘制的简单三角形
但是我的代码产生了这个:
我的问题是,如何让对方斜坡?在我的三角形顶部不会返回1
之后。如果我想把它变成三角形
这是我的代码:
%%Declaration
dt = 0.001 ;
%Equation for h(t) as rect function
T = -1: dt: 3;
g = 0.*(T>= -1 & T< -0) + (-2*T).*(T>= 0 & T<=1) + 0.*(T> 1& T<=3) ;
%Triangle at Graph(g) is at negative side, so need to turn at positive side
h= abs(g);
%Plot Graph(G) in declaration of Graph(h) in absoulute value
plot(T,h);ylim([0 2.5]);ylabel('Triangular,h');xlabel('Time (Second)'); title('Figure 2(a)')
答案 0 :(得分:1)
查看h
的等式,您有三个部分。您的图表中还有三个部分。第一部分和最后一部分是0
,第二部分是增加的部分。
h = 0.*(T>= -1 & T< 0) + (2*T).*(T>= 0 & T<=1) + 0.*(T> 1& T<=3);
因此,第1部分介于-1和0之间,等于0即0.*(T>= -1 & T< 0)
,第2部分介于0和1之间,并且是正增加线,其中梯度2在y轴处与y轴交叉,即y = y = 2x的mx + c等式,在您的情况下,y为h
,x为T
,因此为(2*T).*(T>= 0 & T<=1)
。
所以现在你所需要的只是向下倾斜的等价物。它从(1,2)向下倾斜到(2,0),给出方程y = -2x + 4,所以我们最终得到
h = 0.*(T>= -1 & T< 0) + (2*T).*(T>= 0 & T<=1) + (-2*T + 4).*(T> 1 & T<=2) + 0.*(T> 2 & T<=3);