• 締切済み

MATLAB ヒストグラム 数値データ

あるn行2列の行列からヒストグラムを作成し、他のn行2列の行列のヒストグラムと「どれだけ似ているか」を評価したいです。 まず、2次元のヒストグラムを数値で取り出す方法がわかりません。その際、x・Y軸は行例つかんで固定(一定に)したいです。 そして、ヒストグラム同士の相関をとればいいのかな、と思うのですが、どうでしょうか。 どうか、どなたかよろしくお願いします。

みんなの回答

  • wek00
  • ベストアンサー率62% (90/145)
回答No.1

> 2次元のヒストグラムを数値で取り出す方法 について。 hist3関数が使える場合は、  N = hist3(X,...) のように関数の戻り値を格納する変数を指定すれば良いでしょう。 x・Y軸を統一したいなら引数で指定すれば良いでしょう。 hist3関数が使えないなら同様の処理を自前で記述することになりますね。 散布図を格子状に区切って格子に含まれる点を数える感じでしょうか。 参考: ・2 変量ヒストグラム - MATLAB hist3 - MathWorks 日本  http://jp.mathworks.com/help/stats/hist3.html ・ MATLAB hist3: Setting number of bins, centers, and edges with custom widths  http://stackoverflow.com/questions/31806216/matlab-hist3-setting-number-of-bins-centers-and-edges-with-custom-widths

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

関連するQ&A

  • Rでデータファイルからヒストグラムを作成したい。

    以下の様なデータファイルをRで読み込んでヒストグラムを書きたいのですが、どのようにすれば良いのか、途中で詰まってしまいました。 hist() を使いたいのですが、なぜかうまくいきません。 まず、ファイル("/test.txt")があります。 a1|302.46|235.56|53.697|39.4994|821.3049 a2|85.866|2.6232|133.33|13.6709|51.0768 a3|217.666|23.4868|0.458|678.454|67.545 ・・・・ ・・・・ (一番右に行名、その右に5つ、'|'で区切られた数値が並ぶ。 これが1万行程度続くファイルです。) 1列目のデータをすべて集めてヒストグラムに。 次に2列目のデータを集めてヒストグラムに。次も、、、という段取りで x軸は値,y軸は列番号,z軸は頻度という多次元ヒストグラムを 書くのが最終目標ですが、とても到達できそうにありません。 どなたか、お助けいただけませんでしょうか。 以下が私が行った操作です。 ## ファイル内容をRにて読み込みます。 > dataset <- read.table("/test.txt", header=FALSE, sep="|") ## 次に2列目のみdata2に格納します。 > data2 <- dataset[c(2)] ## 最後にヒストグラムを書かせようとします。 すると、エラーを吐いてしまいます。 > hist(data2) 以下にエラー hist.default(data2) : 'x' は数値でなければなりません データの並び(?)が問題なのかと思って > array <- c(data2) > hist(array) としましたが、これも同じエラーを吐いてしまいました。 データの数値に問題があるのかと思い、以下のようにしてみたのですが これはエラーを吐かずにヒストグラムをつくってくれました。 > list <- c(5.43624 2.061215 1.0185 1.0622) > hist(list) どなたか、よろしくお願いいたします。

  • Matlab 2行の行列をプロットしたいのですが

    こんにちは、Matlabを使い始めのものです。 二行の行列(2x10とか2x40など)にについて、一行目をx座標、二行目をy座標としてグラフ化したいのですが、うまくいきません。 自動的にx座標は列の番号となり、二つのグラフが現れてしまいます:y座標に一行目、二行目、両方がプロットされてしまいます。どうにか、一行目をx、二行目をy座標としてグラフ化できないでしょうか。おそらく、とても単純なことなのかもしれないのですが、どうしてもわからず、とても歯がゆい思いをしています・・・。どうかご教示ください。 何をしたいかといいますと、音声データをMatlabで取り込んだのですが、振幅データがずらっと並んだ、1x500000とかの行列が得られます。 これを、プロットすると、x軸はサンプル番号が並ぶわけですが、本当はx軸は時間であって欲しいため、音声データの行列にひとつ行を足して、時間軸を作ってあげました。つまり、今手元にあるのは、2x500000の行列で、一行目が時間、二行目が振幅となっています。これをx軸が時間軸、でy軸が振幅となるようにグラフ化してあげたいと考えています。 文章がわかり辛くて申し訳ないのですが、何卒よろしくお願いします。

  • Excel2016でヒストグラムの作成について

    いつもお世話になっています Excel2016でヒストグラムの勉強をちょっとし始めました Excelの表からは挿入⇒グラフ⇒ヒストグラムで作成できますが 横軸のデータ区分けが気になっています(q~r、x~y、y~z)と自動的に作成されます、これをいわゆる項目にするには自動⇒分類項目別を選択でできますが 上記(q~r、x~y、y~z)と自動的に作成された後もう少し区分けを細かく(もしくは荒く)したいときはどのようにしたら良いのでしょうか? 通常のグラフでは軸の書式設定で表示の変更ができると思いますが ヒストグラムには無いようなので是非教えて下さい、おねがいいたします。 行列の関係もあるのでしょうか?

  • 分散共分散行列の逆行列

    以下の行列を考えます. 行列X(M行N列,成分の値は分散1のガウスノイズ) 行列Xの分散共分散行列S(M行M列), 行列Sの逆行列Y(M行M列) N=M+1のときはN≠M+1のときに比べて行列Yの各成分の大きさがかなり大きくなる,という結果が得られました. (計算にはMATLABの関数covとpinvを用いました.) これは数学的に正しいことなのでしょうか. また,正しいとしたらどうしてこのようなことが起こるのでしょうか. 行列Yの計算結果の例を以下に示します.(行列Yを500回算出し,それらの平均値を示しています.) http://wisteria.orz.ne.jp/download/pinvcovX.jpg 縦・横方向の軸は行列Yのインデックスを,高さ方向の軸は行列Yの成分の値を示しています. 上述した現象の原因についてご教授いただけると幸いです.

  • 行列の比較

    M行N列(M×N)の行列A,B,Cがあるとき。 行列Aに対してBとCどちらが近いかを比較する方法には どのようなものがあるのでしょうか。 例 行列A(3×3) 1 1 1 1 1 1 1 1 1 行列B(3×3) 1 1 2 2 1 1 1 1 1 行列C(3×3) 2 2 2 2 2 2 2 2 2 例では誤差で考えるとBの方がAに近いのですが 行列内の互いの数値関係が同じ(同じ値)ということで Cの方がAに近い性質を現していることを数値で示したいと考えています つまり求めたいのは相関(?)のような近さです 思いつくのは一列づつ相関をとって最終的に全ての行での 平均をとる方法ですが 他に上手く(出来れば一つの数字で)近さの程度を表す方法や 一般的な方法があれば教えて頂けないでしょうか。 よろしくお願い致します。

  • ■緊急■任意の数値データの波波形と微分波形■

    ■緊急■でお願い致します(期限は原則、後4日間しか有りません)。 はじめまして宜しくお願い致します。 探しているのは■任意の数値データの波波形と微分波形■を表示できるシフトです。 具体例で説明させて頂きます。 ・x軸データ:1、2、3、4、5、6、7、8、9、10 ・y軸元データ:38、25、30、17、26、29、6、22、8、17 だとします。 ・x軸データは予め規定された数値 ・y軸元データはx軸データ毎に観測された数値  です。 表示(2次元グラフ化)したいのは ・x軸データを横軸 として ・y軸元データを縦軸に波状波形として表示し、かつ、 縦軸にy軸元データ波状波形の微分波形を表示させたいです。 EXCELでできると思っていましたがどうしても私にはできませんでした。 そこで、できれば、フリーソフトでできるものを探しています。 (グーグルなどの検索で2日間探しましたが見つかりませんでした) フリーソフトで存在しないのであれば有料ソフトでも案内お願い致します。 ★深刻度★このソフトが見つからないと失業しそうです。

  • 列ベクトルの線型従属性を最小化する変換法

    度々お世話になります。下記の行列の問題で悩んでおります。 <問題> 既知のM×N実行列Xと,適当なN×K実行列Aを用いて, Y = X A Z = exp(X A) を計算する状況にあります。ただし,N < K < M, rank(X) = N です。また,exp()は()内の行列の各要素に対する演算です。 このとき, (1) Yの各列ベクトル間を可能な限り線型独立に近づける (2) Zの各列ベクトル間を可能な限り線型独立に近づける には,それぞれAを,どのように設定すればよいでしょうか? <自分で考えたこと> ○ (1)について,N < Kなので,Yの列ベクトルは線型従属であり,完全な線型独立は実現し得ない。 ○ (1)(2)について,相関係数行列を用いるような,何らかの線型独立性の指標を,数値的に最小化する,という方法はありそう。指標として何が適切かは不明。

  • エクセル数値一覧表の一括入れ替え方法は?

    エクセルの数値一覧表(例えばA~X列の1~100行の数値表)の 列の中心M列?を軸にしてA列をX列へ左右一括入れ替える方法を教えて下さい=又行も50行を軸に1を100に100を1へ上下一括で一覧表を入れ替える方法はありませんか?

  • ExcelグラフでX軸に数値を反映さすには

    ExcelグラフでX軸に数値(1,3,10)を反映さすにはどうすればいいのでしょうか。 例:   X軸  Y軸   これを棒グラフにすると普通はY軸には数値が反映されますが、X軸はそれぞれ    1   10   上から1、2、3と等間隔になります。    3   30   10  150

  • 図の作り方(n行n列に数値があり、数値の大小を色の濃淡で表わす)

    図の作り方(n行n列に数値があり、数値の大小を色の濃淡で表わす) n×n行列があります。 i行j列目の数値をRijと置きます。 Rijには0~100程度の数値が入ります。 数字が小さければ小さいほど、そのマスの色を濃くしたいと思います。 例えば、 1 0 0 0 0 1 1 0 0 というような3行3列の数値なら、 ■□□ □□■ ■□□ といったように表したいです。実際には150×150程度の数値があり、 濃淡で表わしたい数字0~100程度で、整数ではありません。 とりあえずgraceでできるかなと思いやってみましたが、うまくいきませんでした。 適当なソフトなどを紹介していただけるとありがたいです。 抽象的で、説明不足ですが、よろしくお願いします。