2016-04-20 89 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