![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/186149/image.png)
カラーマップを作るには?
20 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
下記リンク先に表記済みですが、フォルダに1分毎の観測データファイルがあります。
例えば、下記プログラムを実行すると、 2016/10/15/12:30に観測されたデータが x軸:Photoncount,y軸:Attitude[m] のグラフ表示されます(図①)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/166592/image.bmp)
このフォルダ内の 2016/10/15 21:00-10/16 6:00 のデータを使い、図②のようなカラーマップを作成したいです。
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/166593/image.bmp)
x軸:Time、y軸:Height[m]、カラーバーの値はPhotoncount です。 また、表記の時間間隔:1分,距離分解能:15mです。
どのようなコードになるでしょうか。
急いでおり、丸投げの質問になってしまい大変恐縮ですが、参考によろしくお願い致します。
if true
%ファイル名をフルパスごと取得
DebugFiles = 'C:\Users\ken\Documents\MATLAB\161015\*16A1512.304146'; %期間指定
%指定フォルダ内のファイルをリスト化
D = dir(DebugFiles);
for i=1:length(D)
% ファイルオープン
fid=fopen(D(i).name);
% ヘッダー読み込み
for k = 1:3
headers{k} = fgetl(fid);
end
% データセットの数を取り出し
third_header = sscanf(headers{3},'%f');
num_datasets = third_header(end); %4
% データセットのヘッダーを読み込み
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); %512
[data{k},count] = fread(fid,num_read,'long');
fread(fid,2,'uint8'); % Read CRLF=13d 10d
end
fclose(fid);
% 行列に整形(各データの数が同じ場合は成功)
DataMat = [data{[4]}]; %[1 3] AnalogOn,Off,[2 4] PhotoncountOn,Off
%0~511までの15刻みのベクトルを作成し、そこから100を引く
x = (0:15:511*15) - 100*15;
plot(x,DataMat)
view(90,-90) %x軸とy軸反転
hold on
end
title('2016/10/15 12:30')
legend('Photoncount Off')
xlabel('Attitude[m]')
ylabel('Photoncount')
xlim([0 3000])
ylim([7*10^4 10^5])
end
1 Kommentar
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 等高線図 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!