• ベストアンサー

MATLABのグラフ

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

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

  • ベストアンサー
  • Kules
  • ベストアンサー率47% (292/619)
回答No.2

A No.1のKulesです。 >2次元の配列をそのまま使うのではなく、配列の中の1列、もしくは1行を抜き出してグラフを作りたいと考えています。 要するに、「1次元配列の棒グラフが作りたい」ということでしょうか? だったら、barでいいでしょう。 http://www.mathworks.co.jp/help/ja_JP/techdoc/ref/bar.html bar3と違ってbarseries objectは見てくれいじりやすいですし。 で、 >配列の中の1列、もしくは1行を抜き出して ということですが、 例えば A(:,m)とすればm列目が抜き出せます。 また、 A(m,:)とすればm行目が抜き出せます。 >理想的には100×100を1×10000に直して A(:)とすれば10000×1(つまり列ベクトル)になります。 転置は'で出来ますね。 ただ、A(:)で出来る列ベクトルは、「Aの各列ベクトルを縦に並べたもの」になります。 (例えば、A=[1,2,3;4,5,6;7,8,9];とすると、A(:)は[1;4;7;2;5;8;3;6;9]になります) よって、「Aの各行ベクトルを横に並べたもの」を作りたいのであれば、先にAを転置しておく必要があります。 不明な点等あればまた補足いただければと思います。 参考になれば幸いです。

okmijnuhbygv
質問者

お礼

ありがとうございます! まさに『目から鱗』状態です!! 答えを知ってしまえば、そんなに難しくないように感じますが、 自分一人では絶対に分からなかったです。 本当に感謝してます ありがとうございました。 また、別の解析で問題が発生し、質問を出しているのでそちらにも答えていただければ嬉しいです。 おかげさまで少し研究が進みました。 これから大学の中間発表に向けてがんばっていけそうです。 本当にありがとうございます。

その他の回答 (1)

  • Kules
  • ベストアンサー率47% (292/619)
回答No.1

そうですね…どういうものを出したいのかいまいちまだよくつかめないのですが。 bar3とかどうでしょう? http://www.mathworks.co.jp/help/ja_JP/techdoc/ref/bar3.html ただ、bar3は私もちょっと触ってみましたがグラフィックとして扱うのはかなり難しいです。 (色を変えたり、とか)見てくれをいじるのはちょっとホネかなあと思います。 あるいはplot3を使うかなあ… なんせ100×100の配列をそのまま使う時点で2次元使ってしまってますから、 それに情報を載せようと思ったら3次元目を使うしかないですよね。 あ、imageで色情報を載せるという手もあるか。 http://www.mathworks.co.jp/help/ja_JP/techdoc/ref/image.html もっと具体的にどういうことをするかなどが出てくれば もう少し有用な回答ができるかも知れません。 参考になれば幸いです。

okmijnuhbygv
質問者

補足

分かりにくい質問の中、ご回答いただきありがとうございます。 2次元の配列をそのまま使うのではなく、配列の中の1列、もしくは1行を抜き出してグラフを作りたいと考えています。 理想的には100×100を1×10000に直してからグラフを作れたらと考えています。 何か有効な方法があればまたご回答いただけないでしょうか。  よろしくお願いいたします。

関連するQ&A