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

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

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

MATLAB

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

Q&A

0回答

234閲覧

ォルダ内のファイルを「1日分」範囲指定して読み込み、グラフを作成したい。

Tannnnnnnnnnn

総合スコア24

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

MATLAB

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

0グッド

0クリップ

投稿2017/07/31 17:48

編集2017/08/01 01:42

以下のように一つのフォルダに1分ごとに作成されたファイルがあります・・①
ファイルのデータはテキストとバイナリデータが混在しています・・②
簡単なデータ構造は下記に示します・・③
データフォーマットはこちらです「http://licel.com/raw_data_format.html」

このフォルダ内のファイルを「1日分」範囲指定して読み込み、グラフを作成したいです。
使用言語はMATLABです。

下記のプログラムはエラーが出ます・・④
また、下記プログラムはフォルダ内の全てのファイル読み込みになっていますが、「1日分」指定して読み込む方法に変更したです。

以前の質問に補足しました。 一人で詰まってしまい大変困っています。よろしくお願い致します。

----①フォルダ内

ファイル名 作成日時 e16A0319.272413 2016/10/03 19:26 e16A0319.272413 2016/10/03 19:27

----②ファイル内構造

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 固定ヘッダ行2 固定ヘッダ行3 データセットヘッダ行1 データセットヘッダ行2 データセットヘッダ行3 データセットヘッダ行4 データセット1 (512x4バイト) CRLF データセット2 (512x4バイト) CRLF データセット3 (512x4バイト) CRLF データセット4 (512x4バイト)

------④プログラム

DebugFiles = 'C:\Users\ken\Documents\MATLAB\161004'; %ファイル名をフルパスごと取得 「161004」というフォルダ D = dir(DebugFiles); %フォルダ内のファイルの名前を全取得 for k = 1:length(D) % ファイルオープン fid = fopen('D(k).name'); % ヘッダー読み込み for i = 1:3 headers{i} = fgetl(fid); end % データセットの数を取り出し third_header = sscanf(headers{3},'%f'); num_datasets = third_header(end); %データセット数 % データセットのヘッダーを読み込み datasetheader = {}; for i = 1:num_datasets datasetheader{i} = fgetl(fid); end % データセットのヘッダーに記載されたデータ分バイナリデータを読み込む data = {}; for i = 1:num_datasets dataheader_parsed = sscanf(datasetheader{i},'%d'); num_read = dataheader_parsed(4); %1つのデータセットのデータ数 [data{i},cout] = fread(fid,num_read,'long'); fread(fid,2,'uint8') % Read CRLF=13d 10d end % データファイルのクローズ fclose(fid); % 行列に整形(各データの数が同じ場合は成功) DataMat = [data{:}]; plot(DataMat); hold on end
エラー fgets ファイルの識別子が無効です。有効なファイルの識別子を生成するには fopen を使用してください。 エラーの発生場所 fgetl (line 34) [tline,lt] = fgets(fid); エラーの発生場所 bynari (line 70) headers{i} = fgetl(fid);

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hige0119

2017/08/01 00:12

データフォーマットが記載されておりません「」になっていますので記載したほうがいいかと思います。「エラーがでます」とはどのようなエラーでしょうか。Javaの質問になっていますが、実際の言語はなんでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問