2016-04-20 91 views
0

我需要改变我的原始输入,进入功能绘制函数在MATLAB

dt = 0.01; 
t1 = 0:dt:1; 
t2 = 1+dt:dt:2.5; 
t3 = 2.5+dt:dt:3.5; 
t4 = 3.5+dt:dt:4; 
t5 = 4+dt:dt:4.5; 

y1 = ones(size(t1))*-1; 
y2 = 2*(t2-2.5); 
y3 = 1*sin(2*pi*(t3-1)); 
y4 = ones(size(t4))*0; 
y5 = rand(size(t5))-0.5;; 

plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

“这一项工作正常^^^^。”

在这里,我已经做到了,但脚本中出现了一些错误。

我在哪里犯错?

如何它的外观现在

function [t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5]=funct(t) 
t = 0.01; % Its every step (0<=t) = (0<=0.01) 


t1 =t((0<=t)&(t<1)); 
y1 = ones(size(t1))*-1; 


t2 =t((1<=t)&(t<2.5)); 
y2 = 2*(t2-2.5); 


t3 = t((2.5<=t)&(t<3.5)); 
y3 = 1*sin(2*pi*(t3-1)); %you wrote sn here 


t4 =t((3.5<=t)&(t<4)); 
y4 = ones(size(t4))*0; 


t5=t((4<=t)&(t<4.5)); 
y5 = rand(size(t5))-0.5; 


plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

回答

0

我获得相同的结果。 首先,我运行代码:

dt = 0.01; 
t1 = 0:dt:1; 
t2 = 1+dt:dt:2.5; 
t3 = 2.5+dt:dt:3.5; 
t4 = 3.5+dt:dt:4; 
t5 = 4+dt:dt:4.5; 

y1 = ones(size(t1))*-1; 
y2 = 2*(t2-2.5); 
y3 = 1*sin(2*pi*(t3-1)); 
y4 = ones(size(t4))*0; 
y5 = rand(size(t5))-0.5;; 

plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

并获得这样的: enter image description here

我试图运行你的函数后:

t = 0:dt:5; 
funct(t) 

enter image description here

其中

function y=funct(t) 
%dt = 0.01; %this is not necessary I think 

%t1 = 0:dt:1; 
t1 =t((0<=t)&(t<1)); 
y1 = ones(size(t1))*-1; 

%t2 = 1+dt:dt:2.5; 
t2 =t((1<=t)&(t<2.5)); 
y2 = 2*(t2-2.5); 

%t3 = 2.5+dt:dt:3.5; 
t3 = t((2.5<=t)&(t<3.5)); 
y3 = 1*sin(2*pi*(t3-1)); %you wrote sn here 

%t4 = 3.5+dt:dt:4; 
t4 =t((3.5<=t)&(t<4)); 
y4 = ones(size(t4))*0; 

%t5 = 4+dt:dt:4.5; 
t5=t((4<=t)&(t<4.5)); 
y5 = rand(size(t5))-0.5; 

y=[y1 y2 y3 y4 y5]; 

figure 
plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

我刚刚在你的代码中纠正了sn-> sin。 也不是,如果你试图执行plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5)以外的功能,它不能工作,因为它是没有足够的输出功能。

你应该修改以下方式,第一行:

function [t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5]=funct(t) 

希望这有助于。错误是不同的?

+0

现在它的作品,但是,每当我绘制它给我空图,我eddited我的代码在我的主要帖子^^^。 –

+0

**关于输入,dt = 0.01应该是t = 0.01,我固定它,现在有足够的输入** –

+0

@DasHas试图定义't = 0:dt:5'''''。 – shamalaia