# Plot a rectangular Pulse from -1 to 1

69 views (last 30 days)
Pratik A on 11 Dec 2020
Commented: SHIVAM KUMAR on 12 Dec 2020
What can be the generalized code for this? I need a generalized code where the output asks me to enter the time axis and range and amplitude
t1=-2:0.01:-1; %time axis
t2=-1:0.01:1; %time axis
t3=1:0.01:2; %time axis
t=[t1 t2 t3];
x1=zeros(size(t1)); %plotting
x2=ones(size(t2));
x3=zeros(size(t3));
x=[x1 x2 x3];
plot(t,x);
SHIVAM KUMAR on 12 Dec 2020
Ok. I hoped of some conversion from string to array but realized it doesn't work so changed the code to do it myself.

This just an example , you have to repeat according to your code requirements :
prompt = 'Enter the vector t1 ';
t1 = input(prompt);

SHIVAM KUMAR on 12 Dec 2020
Edited: SHIVAM KUMAR on 12 Dec 2020
% the syntax for taking input t eg:[-2 -1 1 2] =>t1=[-2,-1 ], t2=[-1 1], t3=[1 2].
%I was sleepy earlier so didn't run the code.
%code , don't edit anything as its already running well tested myself.
t=input("Enter the limit for axis : ",'s');
t1=str2num(t); %To get the array for that input string
number=input("enter number of points in interval t1,t2,t3 : "); %enter number of points in interval t1,t2,t3
amplitude=input("Enter the amplitude of square wave : ");
x1=zeros(number); %plotting
x2=amplitude*ones(number);
x3=zeros(number);
x=[x1 x2 x3];
tim=[linspace(t1(1),t1(2),number) linspace(t1(2),t1(3),number) linspace(t1(3),t1(4),number) ]; %The time axis
plot(tim,x);
title("Rectangulat plot");
xlabel("time");
ylabel("Amplitude");
SHIVAM KUMAR on 12 Dec 2020
This is how it runs.