如何在Matlab中繪製下面的公式。 這個等式有兩個因素。繪製一個特定的兩個輸入元素公式
注意,k是(-1,1)中的標量數。
所以給定一個x值,一個雙值(-infinity,+ infinity)。
我需要繪製這個函數的圖形。
if x>0 plot (1-k)x
else (case x<=0) plot(1+k)x
如何在Matlab中繪製下面的公式。 這個等式有兩個因素。繪製一個特定的兩個輸入元素公式
注意,k是(-1,1)中的標量數。
所以給定一個x值,一個雙值(-infinity,+ infinity)。
我需要繪製這個函數的圖形。
if x>0 plot (1-k)x
else (case x<=0) plot(1+k)x
希望這有助於
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
嗨,好@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
我喜歡匿名函數 - 可以提高可讀性。
f = @(x,k) (1-k).*x.*(x>0) + (1+k).*x.*(x<=0)
plot(x,f(x,k))
注意使用(x> 0)和(x < = 0)來處理不同情況。
我可以用你的代碼在Matlab陰謀?我不知道這個使用@的形式,它是一個參數化的方式嗎? – Igoto
https://se.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html – vindarmagnus
是的,你可以。只要首先定義x和k即可。 – vindarmagnus
[如何在matlab中製作三分支函數的圖形]可能的重複(http://stackoverflow.com/questions/30790802/how-to-make-a-graph-of-a-three- branch-function-in-matlab) –