• ベストアンサー

MATLABのプログラミング

MATLAB全くの初心者です。 横軸を時間、縦軸を反応値は0または1に固定したもので、 周期性をもったパルス波形を生成したいのですが、 途中でつまずいてしまいました。 グラフをプロットすると、 ____∧__∧___ このようなグラフになってしまいます。 本当は、 __|____|____ このようなグラフをつくりたいと考えているのですが… 関数zerosを使った記述方法があれば教えていただきたいです。 よろしくお願いいたします。

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

  • ベストアンサー
  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

matlab の plot は,滑らかに繋ぐようにできているので, パルス列か折線になるのは,仕様です. 「線を表示しないようにする」のが一番簡単な解決法です. X = zeros(1,10); X(5) = 1; figure plot(X); figure plot(X,'d'); %%% こんな感じで 線を引かないようにする. plot のヘルプでも見てみよう. doc plot

lemonsorbet
質問者

お礼

どうもありがとうございました。 MATLABの描画がそのような仕様になっていることも知りませんでした… ヘルプも利用しながらMATLABと奮闘しようと思います。 初歩的な質問にお答えいただき、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MATLABプログラミングについて

    卒業研究のデータ解析をMATLABで行っているのですが, 途中で行き詰ったためお助けをお願いします. 質問内容は,実験により得られたデータがほぼsin波なのですが,その波の数をプログラムで読み取るためにはどうすればよろしいのでしょうか?実験データなので細かく見ると上下に振れています. データをプロットしたグラフだと間隔の狭いところは読みにくく困っています.また,始点と終点の読み取り方法もわかりません. どのようなプログラムを組めばいいか教えてください. 質問がわかりにくいと思いますがよろしくお願いします.

  • MATLAB 図形の長さの調整についての質問

    MATLABについての質問です。 subplot(3,3,[1:2,4:5]);plot(a,b);axis('square'); (図1) subplot(3,3,[3,6]);plot(c,d);           (図2) subplot(3,3,[7,8]);plot(e,f);            (図3) として、図2の縦軸と図1の縦軸を合わせ、かつ図3の横軸と図1の横軸を合わせようとしたところ、squareが原因でこれらの長さが合いません。 図1を正方形で表したまま、図2と図3を図1に合わせる方法を教えてください。

  • Matlabによる一次方程式のグラフ表示

    matlab初心者です。 x1 + x2 = 15 x1 + x2 = 7 x1 >= 0, x2 >= 0 を、縦軸x2, 横軸x1によるグラフ表示したいです。 しかし、matlabにこのまま何も考えずに打ち込むと、x2が定義されていない、x1が定義されていないなどと出ます。 どのようなやり方をすればいいのでしょうか。 よろしければ、実際に打ち込むコマンドを示していただけないでしょうか。 お願い致します。

  • アレニウスプロット?

    横軸に絶対温度の逆数、縦軸に反応速度の対数をとったグラフからは何がわかるのか教えてください アレニウスプロットに似たようなものであるのは誘導からなんとなく分かるので、それと絡めながら説明いただけると嬉しいです

  • プロットについて!!詳しい方お願いします!

    プロットを2点つけなきゃいけないんですが、 1点しかつきません。  0  0 15  10.46     10.58 ↑    ↑ 横軸   縦軸 でグラフを作りたいんです。 折れ線グラフ→近似線の追加とやったら 1つの数字でしかプロットできません!! 2点出すにはどうしたら良いんでしょうか。。

  • MATLABで日本語が表示できない

    現在、MATLAB R2008b版を使用しており、MATLABでグラフを生成し、タイトルを日本語で記述したところ、 文字化けしてしまい、日本語で上手く表示することが出来ませんでした。 一体何が悪いのでしょうか? どなたかご存知の方いらっしゃいましたら、教えていただけると幸いです。

  • Visual C++からMATLABを呼び出したい

    工学系の大学生の者です. 現在,Visual C++で作成したMFCアプリを使って実験機を制御し,その結果にあたるセンサの値を取得してcsvファイルを生成し,それをMATLAB(csvファイルをグラフ化するmファイルを呼び出し)でグラフ化しています. ただ,この手法だとアプリの実行でcsvファイルを生成したのち,MATLAB上でコマンドを打つ必要があり,少し手間がかかります. 私の理想としては,センサ測定値をcsvファイルに書き出したのち,自動でMATLABグラフ化したいと思っております. C#だとMATLABと連携がしやすいとか聞くのですが,VIsua C++ではMATLAB連携や上記のような自動化はできないのでしょうか? できる場合は,やり方や参考資料などを挙げていただけると幸いです. (たとえば,ライブラリやヘッダー,C++ソース側の記述など) ご回答,よろしくお願い致します.

  • 標準曲線から座標を求めるには…

    エクセルでグラフを書きました。 特に比例など関数関係にはなっておらず、ただ単に点をつないで曲線になっています。 このグラフは縦軸にパーセンテージ(0-100)、横軸にある量(0-200g)をとっています。 0、10、20、40、80、100%の時の量はわかっているのでそれを利用してプロットしました。 このグラフから目視(グラフ読み取り)以外の方法で50%のときの量を求めることはできるでしょうか? もしやり方があるならぜひ教えてください。

  • mathematica, グラフ, 軸設定

    mathematicaのグラフの描き方について質問させていただきます. x=yの3次式 を縦軸y, 横軸xでPlotしたいと考えていますが, Plot[yの3次式, {yの範囲}] を実行すれば、横軸yでPlotされるかと思います. yを変化させ(yをxについて解かずに), 横軸にx, 縦軸にyでPlotしたいのですが、 軸を設定するオプションコマンドなどはありますでしょうか。 よろしくお願い申し上げます。

  • matlabでの長時間の計算について

    すみません、現在matlabで数値解析を行っております。 質問を以下にまとめたので、よろしければアドバイスをお願いします。 -------------------------------------------------------------- matlabで数十分かかると考えられる計算を行おうとしています。 その場合、計算後の大容量のデータは一般的にどのように保存すべきでしょうか? これまで、パラメータを50個用意してそれぞれ計算を行い、 後に見比べるために、目的の変数の値をプロットし、画像(角度などを指定してjpegに)として保存していました。 (for文を使って一定量パラメータを変化させる毎に、saveasを使ってグラフを保存していた。) 今まではパラメータ1つあたり数十秒程度で済む計算だったのでこれでも良かったのですが、 今後はパラメータ1個あたりに対しかかる計算時間が数十分になります。。 そこで、今までと同じように保存していくやり方では、もしグラフの保存方法(角度など)を間違えてしまった場合に かなりの損失になってしまうと思ったので質問しました。。 何か効果的なデータの保存の仕方はありませんでしょうか? 以後もパラメータをfor文を使って一定量変化させ、50個用意して計算していこうと思うのですが・・ 一応現状で考えているのは、saveを使ってworkspace内の変数(全て)をそれぞれ保存していくというものです。 何かその他に効果的なデータの保存方法などありましたら是非教えてください。 -------------------------------------------------------------- 上記のように、 計算時間のかかる計算をmatlabを使って行おうと考えているのですが、 計算機を走らせている間、動作が著しく重くなり、ほとんど他の作業が出来なくなります。 (これは避けられませんよね・・?) 私はmatlabを学校で使っているので、帰宅する際、計算機を走らせて帰ろうと考えています。 (節電家でなくてすみません。。) 問題は途中でメモリ不足などで計算がストップしてしまわないかということです・・ 一応、パラメータを変える毎に初期化すべき変数はzerosを使って初期化しているのですが、 パラメータ毎の目的の変数(6つ)は、多いとそれぞれ10^6×200ほどの配列となる可能性があります。 せっかく手間暇かけて走らせたのに、途中でメモリ不足などと表示されたら辛いなぁと思い・・ 現在使っている計算機はubuntu11.04で、メモリは992.8MiBなのですが、やはりこの計算機だと際どいでしょうか・・? -------------------------------------------------------------- コードに関する質問なのですが・・ uが50000000*200の配列で、それぞれの要素に値が入っているとします。 これをそのまま1行目~50000000行目まで、順にグラフにプロットすると、かなりの時間がかかるので、 1行目から、一定数(例えば100)毎の行の配列を グラフにプロットさせたいのですが、やり方がわかりません・・ x = -10: 10: 200 ; t = 0: 100: 50000000 ; waterfall(x,t,u) ; とするとエラーが出ます。 どなたか訂正出来る方、お願いします。。 waterfall以外でも全然構いません。 -------------------------------------------------------------- 以上長々と質問すみませんでした。。 どなたかご指導頂けると助かります・・ あと、分類というのがよくわからなかったので、その他となっています・・ ごめんなさい。。