2013-11-17 5 views
-1

Как видно из названия, я хочу знать, как построить треугольную функцию в Matlab. напримерКак построить треугольную функцию и другие функции шага в Matlab

f(x) = 1-|x| for |x| < 1 and f(x) = 0 otherwise 

А также функции:

Af(x) = A for x >= 0 and Af(x) = 0 for x < 0; -f(x) = -1 for x >= 0 and -f(x) = 0 for x < 0 
+2

Я не вижу ничего особенного об этих функциях, сюжет, как и любой другой функции. Где вы застряли? Пожалуйста, добавьте свой код в вопрос. – Daniel

+0

Все, что я могу попробовать: x = -50: 50; y = [нули (1,50) единиц (1,21) нулей (1,30)]; участок (х, у); ось ([- 55 55 -0.1 1.1]) Но это дает прямоугольную функцию, а не треугольную или две другие. – YYG

+0

Это просто не соответствует определению вашей функции. Я не вижу в вашем коде '1-abs (x)', как это должно работать? Напишите функцию Matlab, которая реализует 'f (x) = 1- | x | для | x | <1 и f (x) = 0 ', протестируйте его, а затем попробуйте построить его. – Daniel

ответ

1

Я предполагаю, что вы не используете символические переменные. Для 2D-построения в Matlab вам нужны два вектора одинакового размера, по одному на ось, поэтому вам нужно создать вектор оси x и вектор оси y. В вашем примере f (x) = 1- | x | для | x | < 1 вы можете сделать это:

x = linspace(-5,5,500); %x-axis vector from -5 to 5 with 500 points 
y = zeros(1,500); %y-axis vector initialized to 0, also 500 points like the x-axis vector 
y(abs(x) < 1) = 1- abs(x(abs(x)<1)); %the points corresponding to |x|< 1 are set to |x| 

figure() %new figure 
plot(x,y) %plot 
box off %removing box 
grid on %adding grid 
xlabel('x axis', 'FontSize', 15) %label of x axis 
ylabel('y axis', 'FontSize', 15) %label of y axis 
axis([x(1), x(end), -0.5, 1.5]) %axis limits 

С, что вы получите график, как это:

enter image description here

Для других функций, которые вы должны действовать, как в этом, построить x- вектор оси и вектор оси y.

UPDATE: В другом примере: f(x) = A for x >= 0 and f(x) = 0 for x < 0:

A = 3; 
x = linspace(-5,5,500); %x-axis vector from -5 to 5 with 500 points 
y = zeros(1,500); %y-axis vector initialized to 0, also 500 points like the x-axis vector 
y(x >= 0) = A; %the points corresponding to x >= 0 are set to A 

figure() %new figure 
plot(x,y) %plot 
box off %removing box 
grid on %adding grid 
xlabel('x axis', 'FontSize', 15) %label of x axis 
ylabel('y axis', 'FontSize', 15) %label of y axis 
axis([x(1), x(end), -0.5, 3.5]) %axis limits 

enter image description here

+0

О, спасибо вам огромное спасибо @pabaldonedo, он выглядит точно так, как мне нужно. И как я могу продолжить работу с двумя другими функциями? – YYG

+0

Я обновил, чтобы решить второй пример, установите константу A в нужное вам значение. Если это поможет, пожалуйста, повысьте. – pabaldonedo

+0

Конечно, это очень помогает и благодарит. К сожалению, я не могу продвинуться, потому что у меня всего 14 репутации, хотя я выбрал это как лучший ответ. Я не посещаю Stackoverflow, как я часто посещаю Mathstackexchange. – YYG

Смежные вопросы