• ベストアンサー

MATLABでの不連続グラフについて

MATLAB初心者です。インターネットや本で調べても、わからなかったので質問させていただきます。 例えば; y=t+1 (t<0) y=-t-1 (t≧0) など、一般的な不連続のグラフを書くとき、どのようにプログラミングすればよいのでしょうか? ご回答いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

y = (t+1)*(t<0) + (-t-1)*(t>=0) t<0, t>=0 はbooleanですが同時に0,1にもなります。 ちなみに(t<0, [t>=0, t<1], t>=1) などのときは y = (t+1)*(t<0) + (-t-1)*(t>=0 && t<1) + (t+2)*(t>=1) の様にします

locoko
質問者

お礼

遅くなってすみません。 描き方にも種類があるんですね。

その他の回答 (1)

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.1

y1=t+1 (t<0) y2=-t-1 (t≧0) tmin≦t≦tmax (tは整数) y1、y2はN行1列の行列 とすると、 plot(tmin:0, y1, 'k-'); hold(on); plot(0:tmax, y2, 'k-'); と書きます。

locoko
質問者

お礼

関数をひとまとめにして描くのでなく、0を境目に二回描く訳ですね。 ありがとうございます。

関連するQ&A

  • MATLABの使い方

    純粋な数学の質問じゃなくて申し訳ないのですが、数学に関することなのでここで質問させていただきました。MATLABを使って以下のことを計算させたいのですが、その入力の仕方を教えてください。 1.以下の近似値を求めよ。 (1)e=lim[n→∞](1+1/n)^n (2)e=Σ[n=0→∞]1/(n!) (3)π=4(1-1/3+1/5-1/7+…) (4)π=4{4(1/5-1/(3・5^3)+1/(5・5^5)-…)-(1/239-1/(3・239^3)+1/(5・239^5)-…)}  (5)100^(1/9) (6)5^(-x)=x 2.以下の関数のグラフを表示させる  (1)e^(-x)・Arctanx (-5≦x≦5)  (2)x=(t^2-t-3)e^(t)・cost,y=(t^2-5t+1)e^(t)・sint (-1≦t≦10) MATLABに関してはまったくの初心者なので、できれば入力方法を具体的に示していただければ幸いです。よろしくお願いします。

  • MATLABのグラフ

    MATLAB という汎用数値解析プログラムを使っています。 現在、100×100の配列の中にランダムな数字(0~40)が入ったデータを扱っています。 その中にある数値を棒グラフで表現したいのですが、どうしたら良いでしょうか。 ヒストグラムの表現はできたのですが、私が行いたいのは1行目の1には数字A,1行目の2には数字B・・・と言ったようなグラフを作りたいです。 周囲にMATLABに詳しい人も居なく、独学では限界を感じて質問しました。 ご回答よろしくお願いいたします。

  • MATLABでのグラフ生成について。

    MATLABでのグラフ生成について。 MATLABでエクセルのデータを読み込みグラフを生成しています。 個人的にエクセルよりもきれいなグラフを作ることができると思いますので。 ただ、X軸を対数軸にした際、目盛り線がたくさんあり、非常に見づらいです。そこで、10,100,…,10000000,のときだけ線を出すようにしたいのですがどうすればよろしいのでしょうか? どなたかご存知の方いらっしゃいましたら、教えていただけると幸いです。

  • matlab グラフの作り方

    matlab 初心者です。 数字の羅列の生データ(観測データ)をmatlabに読み込み、グラフを作成したいです。 どのようなプログラムにいなるのでしょうか..。 まったく見当がつかないので、こんな感じだよっていうのでも凄く助かります。 生データのフォーマットは「Licel Raw Data Format」です。 お詳しい方よろしくお願いします。

  • matlabのグラフ内で指定したy値のx値の求め方

    matlab初心者です matlabで楽器音のpwrファイルからグラフをプロットしました。 今の目的は、15dB以上から15dB以下になるまでを音の持続時間として計測することです。 ですが、15dB時のx軸の値(時間)の求め方がわかりません。 x=ファイル名(y==15) のように記述もしてみましたが、yが定義されていないとエラーが起きてしまい、何がこのpwrファイルのyの値に相当するのかわかっていません。 解決方法がわかる方は教えていただけると幸いです。

  • matlabについて教えてください

    プログラミング初心者です。matlabについて教えてください いまmatlabのプログラム上に、x, y, z, という、それぞれ5行1列の変数があります。 これらをまとめて、linuxのテキストエディタ(geditなど)で読み込める1つのファイルを作りたいと思っています。 作りたいファイルは、1列目にx、2列目にy、3列目にz の値が並んでいるような感じです。 どうかやり方を教えて下さいますようお願いします。

  • MATLABのプログラム

    インターネットのweb上のデータを読み込んでグラフ表示するといったプログラムをMATLABを用いて考えているのですが、例えばYahooのファイナンスの株価データを読み込むといった場合、どうすればよいのでしょうか? ちなみに自分はJAVAやCは多少経験済みですが、MATLABはまったくの初心者でほとんどわからない状態です。 どうか簡単でいいのでヒントになるようなことを教えていただければ幸いです。

  • MATLABについてお聞きしたいです。

    MATLABについてお聞きしたいです。 現在勉強しているのですが、プログラミング初心者なので…。 MATLABでwavファイルの書き込みについてです。 周波数1000Hz, 0.5秒,サンプリング周波数22050Hz の設定にしてwavファイルで保存したく… f=1000; > A=0.5; > Fs=22050; > wavwrite(MyFunc_2(1000,0.5,22050),'sin1000'); という設定にして、保存したのですが、録音時に流れた音と録音された音が違うのです。 ファンクションMファイルは… function y=MyFunc_2(f,A,Fs) %Fs=44100; d=1/Fs; t=0:d:2; %f=440; %A=0.1; y=A*sin(2*pi*f*t); wavplay(y,Fs) このような設定にしています。 問題解決への協力よろしくお願いします。

  • matlabのy軸を2つ利用したグラフについて

    matlabのグラフ作成について質問です。 y軸を左右に表示し、グラフを作成したいのですが、データが6個あります。 2個であればplotyyを使えばいいと思いますが、今回は、データのうち4つを左の軸、2つを右の軸にしたい場合はどのようにグラフを作成したらいいでしょうか? わかる方、よろしくお願いいたします。

  • プログラムについて(matlab)

    matlabで以下のプログラムを実行しているのですが、 グラフが表示されません。 何故でしょうか、、。 ----------------------------------------- t=10 for r=400:1:2000 %波長 if 400<= r <700 y= 18*t.^(0.75); elseif 700<= r <1050 y= 18.*t.^(0.75).*10.^(0.002.*(r-700)); elseif 1050<= r <1150 y= 90*t.^(0.75)*1*1; elseif 1150<= r <1200 y= 90.*t.^(0.75).*1.*10.^(0.018.*(r-1150)); elseif 1200<= r <1400 y= 90*t.^(0.75)*1*8; elseif 1400<= r <1500 y= 5600*t.^(0.25); end plot(r,y) end ------------------------------------------------------ お詳しい方よろしくお願いします.

専門家に質問してみよう