Plot a function for x<0 and x >0

The assigned task is to make a triangular function with peak amplitude of 1 over -5 to +5 without any inbuilt functions.
My approach was to use the respective line equation for x>0 and x<0, but I didn't kow how to do it.
Any other approach to this problem is also appreciated.
Edit:- for some clarity, we are not supposed to use functoins like "Saw-tooth" in this case. while functions like ones,zeroes,plot are fine
The following is my code for the approach I have mentioned above, Any othe approaches are also welcomed
And does anyone know why the title,xlabel,ylabel are not being showed in the output?'
Thanks!
x = (0: 1:5);
k = (-5 :1 :0);
grid on;
g = (k/5) + 1;
y =(-x/5) + 1;
title('Task-2 Triangular Signal');
xlabel('Time');
ylabel('Amplitude');
plot(x,y,k,g);

4 Comments

It is impossible to write any useful code in Matlab without using built-in functions. So please explain the problem with more details: what is allowed to use and what is forbidden?
As usual for homework questions: Show, what you have tried so far and ask a specific question.
RandomChikiBum
RandomChikiBum on 26 Dec 2021
Edited: RandomChikiBum on 26 Dec 2021
Jan, I have edited the post as asked, Can you help me now?
Thanks!
When you call plot() or most other graphics calls, if you have not called
hold on
or equivalent, then the first thing plot will do is locate the axes and cla() the axes.
Move the labels and title to after the plot call.
Thanks @Walter Roberson will keep this in mind the next time I code!

Sign in to comment.

 Accepted Answer

You may modify based on the following code and you should plot first and then set the grid,title,xlabel,ylabel,etc
x = -5:5;
y = 1-abs(x/5);
plot(x,y);
grid on;
title('Task-2 Triangular Signal');
xlabel('Time');
ylabel('Amplitude');

5 Comments

I am sorry I forgot to mention we should also not use "abs" function
If I am not wrong both our methods are the same right, Like logic behind the code? ,Do you have any other method in mind?
Accept logical operation like the following?
y = 1 - ((x<0).*-x/5 + (x>0).*x/5);
yes! Thank you!
(Tho I need to learn what they mean haha)
@Simon Chan can you post another answer with the logical operators , so that I can accept the answer?
You can just simply accept this answer, glad it solve your question.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Release

R2020b

Community Treasure Hunt

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

Start Hunting!