2014-11-06 64 views
0

我想在MATLAB中繪製斜坡函數。 我有以下功能爲我的斜坡:繪圖斜坡函數

function [ y ] = ramp(x) 
    y=zeros(size(x)); 
    y(x>=0)=linspace(0,x(end),length(x(x>=0))) 
end 

不過,我希望它有我的階躍函數

syms x 
ezplot(5*heaviside(x-1), [-10, 10]) 

一個類似的效果。當我使用此代碼:

syms x 
ezplot(5*ramp(x-1), [-10, 10]) 

當我做(x-1)它似乎拋出一個錯誤,這是不可能的,我可以要求一些修改嗎?:

Cannot prove '0 <= x - 1' literally. To test the statement mathematically, 
use isAlways. 
+1

不需要'ezplot',只需使用'plot'。 – David 2014-11-06 04:53:42

回答

0

您的階梯函數圖使用符號變量x的函數。但是,ramp,你寫的方式,是一個函數,需要數值輸入(一個x值的向量)。這就是爲什麼你試圖傳遞一個符號x到它失敗。下面是繪製此功能的正確方法:

x = linspace(-10,10,100); 
plot(x, 5*ramp(x-1)) 

或者,你可以重寫ramp作爲一個象徵性的變量的函數:

function y = symbramp(x) 
    y = (x+abs(x))/2; 
end 

,並繪製它作爲你與亥那樣:

syms x 
ezplot(5*symbramp(x-1), [-10,10])