2016-11-20 47 views
0

如何在Matlab中繪製下面的公式。 這個等式有兩個因素。繪製一個特定的兩個輸入元素公式

注意,k是(-1,1)中的標量數。

所以給定一個x值,一個雙值(-infinity,+ infinity)。

我需要繪製這個函數的圖形。

if x>0    plot (1-k)x 
else (case x<=0) plot(1+k)x 
+0

[如何在matlab中製作三分支函數的圖形]可能的重複(http://stackoverflow.com/questions/30790802/how-to-make-a-graph-of-a-three- branch-function-in-matlab) –

回答

0

希望這有助於

k = 3 - randi(3); %random number between -1-0-1 (thanks op) 
x = -1e6:1e6; %a very long vecot 
y = zeros(1,length(x)); %prelocate y 
ind = find(x); %find the indeces where x>0 
y(ind) = (1- k) * x(ind); 
ind = find (x<=0); 
y(ind) = (1+k) * x(ind); 
plot(x,y);%plot 
+0

嗨,好@Ronen Cohen,但是使用你的版本到[-1,1]中的浮點值,不能很好地工作,因爲你使得ans矢量2x2,並且會使用它的錯誤。如果我想模擬整數狀態,並且這種情況k = { - 1,0,1},我正在使用randi(3)-2。謝謝你想幫助我! ANS = 0.5315 -0.4685 -0.4685 0.5315 >>(RAND *( - 1))^(蘭迪(1,2)) – Igoto

0

我喜歡匿名函數 - 可以提高可讀性。

f = @(x,k) (1-k).*x.*(x>0) + (1+k).*x.*(x<=0) 
plot(x,f(x,k)) 

注意使用(x> 0)和(x < = 0)來處理不同情況。

+0

我可以用你的代碼在Matlab陰謀?我不知道這個使用@的形式,它是一個參數化的方式嗎? – Igoto

+0

https://se.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html – vindarmagnus

+0

是的,你可以。只要首先定義x和k即可。 – vindarmagnus

相關問題