如何在matlab中生成周期分段定义函数?

如何在matlab中生成周期分段定义函数?,matlab,Matlab,我试图在matlab中创建自己的函数,其解析定义如下: x(t)= { A, k*T =< t <=k*T+tau { 0, k*T+tau < t < k*T+T 该函数应类似于振幅为a的方波(例如a=1) 如何做到这一点?您可以定义一个周期(k=1),然后使用repmat重复k次。现在它不起作用了,因为您正在逻辑上比较t(长度1001)和k*t(长度10) 或者,转置k,并在行上求和: A=1; T=2; tau=1; k=(0:1:10)'; t=0:0.1:1

我试图在matlab中创建自己的函数,其解析定义如下:

x(t)=
{ A, k*T =< t <=k*T+tau 
{ 0, k*T+tau < t < k*T+T
该函数应类似于振幅为a的方波(例如a=1)


如何做到这一点?

您可以定义一个周期(k=1),然后使用
repmat
重复k次。现在它不起作用了,因为您正在逻辑上比较
t
(长度1001)和
k*t
(长度10)

或者,转置
k
,并在行上求和:

A=1;
T=2;
tau=1;
k=(0:1:10)';
t=0:0.1:100;

y=sum(A.*(t>=k*T).*(t<=k*T+tau) + (0).*(t>k*T+tau).*(t<k*T+T),1);

plot(t,y)
A=1;
T=2;
tau=1;
k=(0:1:10)';
t=0:0.1:100;

y=sum(A.*(t>=k*t)。*(tk*t+tau)。*(t您可以定义一个周期(k=1),然后使用
repmat
重复k次。现在它不起作用,因为您在逻辑上比较
t
(长度1001)和
k*t
(长度10)

或者,转置
k
,并在行上求和:

A=1;
T=2;
tau=1;
k=(0:1:10)';
t=0:0.1:100;

y=sum(A.*(t>=k*T).*(t<=k*T+tau) + (0).*(t>k*T+tau).*(t<k*T+T),1);

plot(t,y)
A=1;
T=2;
tau=1;
k=(0:1:10)';
t=0:0.1:100;
y=和(A.*(t>=k*t)。*(tk*t+tau)。*(t
A=1;
T=2;
tau=1;
k=(0:1:10)';
t=0:0.1:100;

y=sum(A.*(t>=k*T).*(t<=k*T+tau) + (0).*(t>k*T+tau).*(t<k*T+T),1);

plot(t,y)