2010-12-05 6 views
0

私はそれをテストするためのインターバルから特定の数値を取得し、後で1つのグラフの下に異なる関数を構築する方法を知りたいと思います。たとえば、(この場合は「X」変数)、私は本当にMATLABで何をしたいのかMATLABでグラフの従属変数に関するステートメントを実行するにはどうすればよいですか?

x 0:.5:5; 

Ids=ones(x); 
figure;hold on; 

for n = 1:5 
    if(x < 3.0) %problem here 
     Ids(n) = plot(x,x.^x); 
    else 
     if (x > 4.0) %and here 
      Ids(n) = plot(x,-x.^x); 
     end 
    end 
end 

EDIT

は、次の区分の機能を行うことができるようにすることです:

y(x) = { 0     (t - 5) < 0 
     { (t - 5)*(t - x)  x < (t - 5) 
     { (t + x^2)   x >= (t - 5) 

x = 0:.5:10t = 0:.1:10の間にこの関数をどのようにグラフ化するのか分かりません。私はtなしでこれを行う方法を知っていますが、tが含まれていて、別の間隔がxと比較されると失われます。あなたは、区分的多項式を探している可能性があり

+0

Y_Y、あなたは何をしたいのですか? gnoviceが書いたように、あなたのコードからあなたがやろうとしていることは不明です。あなたがしたいことを「言葉」で書くことができますか?関数f(x)は、あなたが探しているgnoviceの答えに与えられていますか? –

答えて

1

それは何をしようとするあなたのコードから少しは不明だが、あなたが次の形式を持つ関数f(x)作成し、プロットしたいことが表示されます:これはあなたが望むものである場合

f(x) = [ x  for 3 <= x <= 4 
     [ x^x for x < 3 
     [ -x^x for x > 4 

をするには、logical indexingを使用して以下を行うことができます:

x = 0:0.5:5; %# 11 points spaced from 0 to 5 in steps of 0.5 
y = x;  %# Initialize y 
index = x < 3;     %# Get a logical index of points less than 3 
y(index) = x(index).^x(index); %# Change the indexed points 
index = x > 4;     %# Get a logical index of points greater then 4 
y(index) = -x(index).^x(index); %# Change the indexed points 
plot(x,y);      %# Plot y versus x 
1

http://www.mathworks.com/help/techdoc/ref/mkpp.html

そうでなければ、私は、2つのベクトル「X」と「Y」を作るいわば、およびXを反復し、あなたの条件を適用することにより、Yを満たすことをお勧めし、結果をxにプロットする。これによりプロットを保持する必要がなくなります。

描画をアニメーション化する場合は、forループに "drawnow"を続けてplot()を追加します。プロットをアニメーション化しなければならなかったので、しばらくしていましたので、私は描画やアニメーションのチュートリアルを提案しました。

+0

piecewise関数 'mkpp'を使ってどうすればいいですか? –

関連する問題