0
功能我試圖在單個情節繪製逐段函數(形式爲y =αX+β的),使得用於在x軸不同的區域,對於函數,我有不同的α和β值。繪製「鋸齒狀」 MATLAB的
我想使這些步驟的位置(在x軸)可修改在將代替具有這樣的片函數的預定數目。繪製時,理想情況下它應該看起來像一組不同斜率和截距的線條,每個線條間隔一定距離。所以如果我的間距向量有10個元素,我寫了我的代碼,這樣我將相應地爲x軸上的不同區域分配10個不同的函數。
這裏是我寫的代碼。
x = linspace(0,100,10000);
y = zeros(1,10000);
spacing = 0:10:100;
alpha = linspace(1,3,length(spacing)); %setting arbitrary upper lim
beta = linspace(1,5,length(spacing));
for j = 1:length(spacing)
for i=1:10000
if x(i) <= spacing(j)
y(i) = alpha(j)*x(i) + beta(j);
i = i + 1;
else
j = j + 1;
end
end
end
plot(x,y)
但是,當我繪製這個,我得到一個單一的斜坡。它似乎並沒有被認識到的間距(J)的變化是由於當J = J + 1次迭代else語句
任何建議或幫助,我應該如何處理這將是多大不勝感激!
由於啓動,這是有道理的。我也很好奇,如果可以讓線性圖從y = 0開始,而不是從之前的片斷函數開始。一旦y(i)被更新,我想過在循環中將'i'值重置爲1,但是這並不能解決像往常一樣仍然讓x軸讀取0-100的問題。 – Ferreroire
您可以將ylim([0 max(y)]添加到代碼的末尾。更一般地說,ylim([a b])將限制繪圖的a <= y <= b。查看更新後的答案。 –