質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.33%

  • MATLAB

    170questions

    MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

MATLABで複数の実験データ(生データ)のモデリング

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 689

NKNK

score 9

複数の観測データ(生データ)のモデリングが出来なくて困っています。

まず観測データとして、1つのディレクトリ「161004」、

e16A0400.004462                  2016/10/04 0:00 
e16A0400.014596                  2016/10/04 0:01
e16A0400.024789                  2016/10/04 0:02
・・・ 


という風に、10/4に1分ごとに記録された生データファイルが並んでいます。
この「161004」ディレクトリ内の生データファイルを一つの図にモデリングをしたいのですが、
説明を読んでも掴めなく、アドバイスをお願いしたいです。

例えば、一つの生データファイル
「e16A0319.272413」 
の中身を表示すると、 

e16A0319.272413                                                               
03/10/2016 19:26:23 03/10/2016 19:27:24 0000 0000.0 0000.0 00        
0000000 0010 0018952 0010 04                                                  
1 0 2 00512 1 0000 0015 00829.o 0 0 00 000 12 150024 0.020 BT1                
1 1 2 00512 1 0000 0015 00829.o 0 0 00 000 00 150024 3.1746 BC1               
1 0 2 00512 1 0000 0015 00829.o 0 0 00 000 12 150023 0.020 BT1                
1 1 2 00512 1 0000 0015 00829.o 0 0 00 000 00 150023 3.1746 BC1 

邪ラ。ラシゥラOォラそラa泰ラL釐!TリラヨZラョェラ㌘ラtKラTxラ%rラ晗o蹟( ラ・ラュラソCラ 碩>槞遞ラM泰%ャラキラCコラdコラ・ラマララララ=・"ョfリツリタリリVリN/リコ4リ6DリDHリVリリDリヒ_リラaリjリYnリヲyリ|リ>€リヲ筋X筋ト娩壓s」リ。「リgゥリッリyッリ┝リクチリソリ捨リ橆リH籀 
゚リチ袙、毖・リハ."ルYル-ルナル    ルア'ルI2ルト6ル・ル・ルカ@ル'Jル祟ルxVル輯ル(cルjdルナiルHlルjルoルョtルモgルミpルnル+uル`pル綠ル2・ツEj\MソMS€・果_ッ・Xオ・T-適・A」・s=FC>輅筋フfヘナシk・u%dロ0ヨа4ヒセ・ヲ 
・・・・・・・・・・・・・・・・ 

と表示されます。
①プログラムで、1分おきの1つのファイルは読み込めました。
②プログラムで「161004」ディレクトリ内の生データファイルを一つの図にモデリングをするにはどのような修正が必要でしょうか。エラー表示も記載します。
また、③は生データの構造とデータフォーマットです。

①1つ(1分間)の生データ読み込みプログラム

fid =fopen('e16A0319.272413','r+');

for i = 1:8
    header = fgetl(fid);
end
% 各データセットの読み込み
data = cell(1, 4);
for i = 1:4
    data{:,i} = fread(fid, 512, 'unsigned long');

    % <CRLF> の読み飛ばし
    if i ~= 4
        fread(fid, 2, 'short');
    end
end

fclose(fid);

plot(data{1,4})
②「161004」ディレクトリ内の生データファイルを一つの図にモデリングをする


D=dir('C:\WORK\161024');

for k=1:length(D)

        fid =fopen('D(k).name','r+');

        for i = 1:8
            header = fgets(fid);
        end

        %  各データセットの読み込み
        data = cell(1, 4);
        for i = 1:4
            data{:,i} = fread(fid, 512, 'unsigned long');

            % <CRLF> の読み飛ばし
            if i ~= 4
                fread(fid, 2, 'short');
            end
        end

        fclose(fid);

        plot(data{1,4})
        hold on
        D=dir(DebugLocation); 
        %}
end

②エラー

エラー fgets
ファイルの識別子が無効です。有効なファイルの識別子を生成するには fopen を使用してください。

エラーの発生場所 higoto (line 10)
            header = fgets(fid);
③生データファイルの構造



固定ヘッダ行1 
固定ヘッダ行2 
固定ヘッダ行3 
データセットヘッダ行1 
データセットヘッダ行2 
データセットヘッダ行3 
データセットヘッダ行4 
データセット1 (512x4バイト) 
<CRLF> 
データセット2 (512x4バイト) 
<CRLF> 
データセット3 (512x4バイト) 
<CRLF> 
データセット4 (512x4バイト)
③Licel生データフォーマット


Licelロゴ 
2最後の文字がどこにあるか\ noindentヘッダ行(ASCII形式)は、80文字の長さを有しています<CRLF>。ヘッダー行は、バイナリ形式のデータが続いています。最初のヘッダ行は、ファイル名が含まれています、

その文字で始まります。 
世紀の年を示す2桁の数字 
月(161桁)、 
日(小数点以下2桁)、 
時間(10進数、124時間、2桁)、 
ピリオド(。)、 
分(小数点以下2桁)、 
秒(小数点以下2桁)、 
秒の最初の小数点以下2桁(10進数、2桁)。 
2番目のヘッダー行には、システムに関する情報が含まれています: 
測定部位(8文字)、 
測定開始時刻(日/月/年は、hh:mm:ssの)、 
測定終了(日/月/年は、hh:mm:ssの)、 
海抜高度(4桁(メートル))、 
経度(を含む4桁の数字( - 記号)小数点以下のグレードのための1桁。) 
緯度(を含む4桁の数字( - 記号)小数点以下のグレードのための1桁。)。 
天頂角(度で2桁) 
第三のヘッダ行で 
タイプ1のレーザのレーザショットの数(整数7桁)、 
1型レーザ(整数5桁)の繰り返し率、 
2型レーザのレーザショット数(整数7桁)、 
2型レーザー(整数5桁)の繰り返し率 
そして、次のデータセット(整数2桁)の番号が与えられています。 
3型レーザのレーザショット数(整数7桁)、 
タイプ3のレーザの繰り返し率(整数5桁) 
データ・セットに固有のヘッダ行が含まれています。

データが(アクティブセット1/0)。非アクティブなデータセットが書き込まれません。 
光子計数Iアナログ(1/0) 
レーザーの種類(1/2) 
データポイントの番号(5桁) 
人数、個数、総数 1 
PM(V)の高電圧(ボルトで4桁の数字) 
ビン幅(メートル単位で小数点記号(。)および小数点以下を含む4桁) 
nm単位の波長(nm)、5桁の数字はピリオド(。) 
偏光状態0 - なしのp - 並列秒 - 垂直 
0 0 (後方互換性) 
ビンシフト、全体数(プライマリビン、整数は、2桁の数字を切り捨て 00 サポートまたはゼロではない場合) 
ビンシフトの小数点以下の桁(3桁、 000サポートされているか、ゼロでない場合) 
ADCのビット数(2桁) 
ショット数(6桁) 
弁別レベルまたはADC(1桁の期間のデータ範囲4/3の数字) 
デバイスidentificator(BT=アナログデータセット、BC=光子計数は、数は16進数で過渡現象記録装置のアドレスです) 
ヘッダ行が続いている<CRLF>とによって分離された32ビット・データ・セット<CRLF>。データセットは、アナログ信号の場合、ショット数、さらにビット数およびデータ範囲を使用して物理単位と量に変換することができます。この手順で実行されます。

足りない情報等あるかもしれませんが、よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • iwanote

    2017/01/17 07:10 編集

    ここはやりたいことを丸投げする場ではありません。最低限自分でやってみる努力は必要です。間違っていてもいいですから自分で書いてみたらどうですか?
    ○○をするために○○が必要で、○○をしようとしているけど○○が出来ないって書いてくださると回答しやすいと思いますよ

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • MATLAB

    170questions

    MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。