Plot a rectangular Pulse from -1 to 1
14 次查看(过去 30 天)
显示 更早的评论
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);
4 个评论
Image Analyst
2020-12-12
input() takes a string, not a bunch of numerical variables with no multiplication sign between them. Again, a string, not numbers.
SHIVAM KUMAR
2020-12-12
Ok. I hoped of some conversion from string to array but realized it doesn't work so changed the code to do it myself.
回答(2 个)
Mohamad
2020-12-12
This just an example , you have to repeat according to your code requirements :
prompt = 'Enter the vector t1 ';
t1 = input(prompt);
0 个评论
SHIVAM KUMAR
2020-12-12
编辑:SHIVAM KUMAR
2020-12-12
% 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");
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!