カラーマップを作るには?

조회 수: 8 (최근 30일)
nknknknk
nknknknk 2017년 8월 8일
댓글: nknknknk 2017년 10월 9일
下記リンク先に表記済みですが、フォルダに1分毎の観測データファイルがあります。
例えば、下記プログラムを実行すると、 2016/10/15/12:30に観測されたデータが x軸:Photoncount,y軸:Attitude[m] のグラフ表示されます(図①)
このフォルダ内の 2016/10/15 21:00-10/16 6:00 のデータを使い、図②のようなカラーマップを作成したいです。
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
michio
michio 2017년 8월 8일
図を質問内に貼り付けてみました。赤丸で記したボタンで貼り付けられますので、是非活用ください :)

댓글을 달려면 로그인하십시오.

채택된 답변

michio
michio 2017년 8월 8일
편집: michio 2017년 8월 8일
関数としては contourf 関数 で実現できそうな気がしますが、この関数は試してみましたか?
例:
n = 100;
X = linspace(0,10,n);
Y = linspace(0,1,n);
Z = peaks(n);
contourf(X,Y,Z,'LineStyle','none');
colorbar;
上は適当なデータで実際に実行できる形にしていますが、XにTime、YにHeight[m]、そして2次元配列 Z を読み取ったPhotoncountで作成すれば行けると思いますが、いかがでしょう?
  댓글 수: 8
nknknknk
nknknknk 2017년 10월 5일
ご回答ありがとうございます。
imagesc でのカラーマップ表示をしたかったのですが、 contourf を使用して、x軸観測時刻、y軸観測距離[km]の等高線の図(図①)は作成出来ました。ここで加えて質問ですが、図①の等高線の間に色をつける事は可能でしょうか。
図①
nknknknk
nknknknk 2017년 10월 9일
解決いたしました。 ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 等高線図에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!