電子書籍の厳選無料作品が豊富!

こんにちは。

Matlab初心者のArkaといいます。先輩方に指導を頂けたらありがたいです。

現在あるデータをMatlabを使って分析し、サンプルに含まれる化学物質が何であるかを明確にするのと、どれだけの化学物質が含まれているかを推測しようとしています。集められたデータは3Dなのですが、一旦エクセルに2Dデータとして保存されます。データはこんな感じです(実際はもっと大きい行列です)。

0 1 2
0 -0.0050 -0.0049
0.02 -0.0049 -0.0043
0.04 -0.0038 -0.0035
0.08 -0.0042 -0.0034
0.12 -0.0052 -0.0089

データをエクセルでプロットすると、これに近いものが出てきます(私のものではありません)。

http://www.freepatentsonline.com/7067800-0-large …

それを(:,:,2)を使って3Dに変えて、データの中からそれぞれのピークの極大値を探し出し、ピークの体積を推測したいのです。ピークの極大値は化学物質を特定するのに使われ、体積はどれだけの化学物質が存在するのかを表します。

インターネットや本等で調べたり、数学、統計学、地理学などを専門とされている方々に尋ねたりしたのですが、特にいいアイデアが見つかりませんでした。

簡単に言いますと、式のない、行列から作り出された3Dグラフから極大値を特定し、それに伴う体積の計算をMatlabにプログラムしたいのですが、何かいいアイデアはないでしょうか。

説明するのが難しいので、「おい、何言ってるのか分からないぞ」と言う方は、分からない所をご指摘いただけるとありがたいです。

A 回答 (1件)

>集められたデータは3Dなのですが、一旦エクセルに2Dデータとして保存されます。

データはこんな感じです

3Dと言うのがイマイチ意味が分かりませんね。
エクセル上に落としたデータの最初の行(0, 1, 2と番号をふってある)はラベル(物質名、とか何かの名前であるとか)ですか?つまり、データは列単位で並んでるのでしょうか?
また、3つデータが並んでいたとしても、原則、3Dプロットしたい、なんて場合はそのうち2つが説明変数、1つが目的変数とならないといけません。
(これは、説明変数が3つあったら数学的に見ても「視覚化は不可能」だ、と言う事が分かるでしょう。何せ、僕等は3次元空間上の生物なので、基本、4次元のグラフは想像の範囲外で、「作れない」と言っていいのですから。)

いずれにせよ、エクセルにまでデータ行列を落としているのなら、グラフ作成で有用なのは恐らくMatlabより統計解析ソフトRの方が扱いやすいと思います。

参考URL:http://www.okada.jp.org/RWiki/
    • good
    • 0
この回答へのお礼

cametan_42さん

回答ありがとうございます。説明変数や目的変数のことはよく分からないのですが、(0,1,2…)というのは記録時間を示していて、秒単位、(0 0.02 0.04…)は分子の飛行時間で1/100秒単位、(-0.05, -0.049, -0.038…)は電流の強さを示す単位で、既に3Dグラフは難なく完成させているのです(電流の強さをy軸として、記録時間をz軸、飛行時間をx軸)。ただ、3Dプロットを見ただけでは化学物質の特定と体積の推定は不可能なので、行列から極大値の特定(物質の反応によって電流が出ている箇所、最大電流が出るまでどれだけの飛行時間と記録時間がかかるか)と、体積(どれだけの電流が出ているのか)を求めたいのですが…

統計解析ソフトRではそういうことも可能なのでしょうか?

お礼日時:2008/03/09 15:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!