如何在MATLAB中绘制在不同时间间隔内具有不同定义的函数?
例如,函数等于t加1,t在区间减1到0,等于t,区间0到1.我们需要在定义函数后进行移位和缩放。所以请在回答时考虑一下。
我尝试将 t
定义为数组t = [-2:0.01:2]
和f = zeros( length( t ) )
,然后在f
中找到与其值相对应的位置t
并为其指定值。
我必须乘以两个信号(它们是原始信号的移位和采样版本)。我写的代码没有给出所需的输出。
clc
clear
t=(-10:0.01:10);
y=zeros(size(t));
y(t>=-1 & t<=0)=-1*t(t>=-1 & t<=0)-1;
y(t>=0&t<=1)=t(t>=0&t<=1);
y(t>=1&t<=2)=1;
y(t>=2&t<=3)=-1*t(t>=2&t<=3)+3;
subplot(5,1,1);
plot(t,y);
axis([-5 5 -2 2]);
n1=input('enter the shifting parameter-');
n2=input('enter the scaling parameter-');
t=(t+n1)/n2;
subplot(5,1,2);
plot(t,y);
axis([-5 5 -2 2]);
n3=min(t);
n4=max(t);
p=-10:0.01:10;
y1=zeros(size(p));
y1(p>=-2 & p<=-1)=1;
y1(p>=-1&p<=0)=-1;
y1(p>=0&p<=1)=p(p>=0&p<=1)-1;
y1(p>=1&p<=2)=1;
subplot(5,1,3);
plot(p,y1);
axis([-5 5 -2 2]);
m1=input('enter the shifting parameter-');
m2=input('enter the scaling parameter-');
p=(p+m1)/m2;
subplot(5,1,4);
plot(p,y1);
axis([-5 5 -2 2]);
m3=min(p);
m4=max(p);
a1=max(n3,m3);
a2=min(n4,m4);
r=a1:0.01:a2;
y2=zeros(size(r));
y2=y(r<=a2&r>=a1).*y1(r>=a1&r<=a2);
subplot(5,1,5);
plot(r,y2);
axis([-5 5 -2 2]);
答案 0 :(得分:0)
不确定问题是什么,但是..
t = -1 : 0.01 : 1;
y = zeros(size(t));
y(t < 0) = t(t < 0) + 1;
y(t >= 0) = t(t >= 0);
plot(t, y);
如果你不想在断点处有一条垂直线......
hold on;
plot(t(t < 0), y(t < 0));
plot(t(t >= 0), y(t >= 0));
hold off;
像这样y = -t-1; -1&lt; t&lt; 0 y = t; 0&lt; t&lt; 1 y = 2; 1&lt; t&lt; 2我
只需添加新的间隔
t = -1 : 0.001 : 2;
y = zeros(size(t));
y(t < 0) = t(t < 0) + 1;
y(t >= 0 & t < 1) = t(t >=0 & t < 1);
y(t >= 1 & t <=2) = 2;
plot(t, y);