x軸の値を表記転換するには?
Show older comments
ファイルのデータから日時情報を取り出し、グラフのx軸に設定するにはどうすれば良いでしょうか?
下記の質問の補足になります。
下記プログラムで、出したグラフを添付します。 ①10/13 0:00-23:59、②2016/10/15 13:00-13:10
このグラフは
x軸がデータ番号となっており、 データ数:512個で、最初の100個は背景光(無視)、 100番目が0[m]になります。
距離分解能は、15[m]なので、
#0~99 Background
#100 0[m]
#101 15[m]
#102 30[m]
....
#200 1500[m]
...
#500 6000[m]
..
#511 6165[m]
end となります。
そこで、 1.x軸について、データ番号から観測距離[m]に表記変換したい。 データ番号を100からスタートさせ、100→0,101→15,102→30 と表記を変更したい。 2.データセットが4つあるうちの、2,4番目のみ取得して、グラフに表示させたい。
の方法をお聞きしたいです。よろしくお願い致します。
if true
% code
end
DebugFiles = 'C:\Users\aboken\Documents\MATLAB\161015\*16A1513.0*';
%指定フォルダ内のファイルをリスト化 日にち指定
D = dir(DebugFiles);
% ファイルオープン
fid=fopen(D(i).name);
% ヘッダー読み込み
for k = 1:3
headers{k} = fgetl(fid);
end
% データセットの数を取り出し
third_header = sscanf(headers{3},'%f');
num_datasets = 4third_header(end);
% データセットのヘッダーを読み込み
datasetheader = {};
for k = 1:num_datasets
datasetheader{k} = fgetl(fid);
end
fread(fid,2,'uint8') % Read CRLF=13d 10d
% データセットのヘッダーに記載されたデータ分バイナリデータを読み込む
data = {};
for k = 1:num_datasets
dataheader_parsed = sscanf(datasetheader{k},'%d');
num_read = dataheader_parsed(4);
[data{k},cunt] = fread(fid,num_read,'long');
fread(fid,2,'uint8'); % Read CRLF=13d 10d
end
% データファイルのクローズ
fclose(fid);
% 行列に整形(各データの数が同じ場合は成功)
DataMat = [data{:}];
plot(DataMat)
hold on
end
5 Comments
時系列のデータが用意できれば plot 関数で対応可能なんですが、、取り扱っているデータに明るくないのでかなりの難題になっています。
データ数:512個で、最初の100個は背景光(無視)、 100番目が0[m]
と説明して頂いてますが、データ番号と日時には何らかの関係がありますか?
今回添付して頂いたのは、
- x軸:データ番号
- y軸:フォトン数(光子数)
を複数のデータファイル(複数の日付)から取得して重ね書きしたものと解釈していますが、新たに日時をx軸に設定した場合、、y軸は何になりますでしょうか?
x軸はデータファイルのこの部分、y軸はデータファイルのこの部分を使いたい、など明示的に指示頂ければ理解できるかもしれません。
Jiro Doke
on 3 Aug 2017
michio さんの言う通り質問がよく理解できません。現在のXデータの単位は [m] のようですが、Xデータを時間にしたいという理解でよろしいでしょうか。その場合の [m] と時間の関係性が分かりません。
手書きの図(スキャン)でもいいので、期待している図を見せていただけると分かりやすいのですが。
nknknknk
on 3 Aug 2017
Jiro Doke
on 4 Aug 2017
お手数ですが、もとの質問を上記の正しい質問に書き換えていただけますか?nknknknkさんのアイコンの下に「Edit」というリンクがあるので、そこから修正してください。とりあえず回答は下にしておきます。
nknknknk
on 4 Aug 2017
Accepted Answer
More Answers (0)
Categories
Find more on 行列および配列 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!