2014-11-12 2 views
1

Я хочу построить треугольник, основанный на уравнении в Matlab.plot triangle in MATLAB

Я создаю уравнение g для моего треугольника, который мне нужно использовать для свертки позже.

На рисунке ниже это простой треугольник я хочу построить

enter image description here

Однако мой код производит это:

enter image description here

Мой вопрос, как сделать другой откоса ? и после того, как верхняя часть моего треугольника не вернется к 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

Возможно, попробуйте 'T = [-1: dt: 3, -1 ] '? – Dan

+0

все равно получил тот же ответ. Какая черта -1 означает сзади? –

+0

Извините, конечно, я думал, что вы пытаетесь построить реальный треугольник, а не линию с треугольным горбом. – Dan

ответ

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), раздел два находится между 0 и 1, и положительная линия с увеличением градиента 2 пересечения оси у при 0, т.е. имеет у = mx + c уравнение y = 2x и в вашем случае 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); 
+0

Ох, как это .. Извините, я забыл про основную. Сначала я должен знать градиент, правильно. :) Тогда я могу переслать игру с кодировкой. Спасибо. , –