MATLAB Answers

エクセルファイルを読​み込み、グラフの上か​らプロットするには。

164 views (last 30 days)
nknknknk
nknknknk on 9 Nov 2017
Commented: nknknknk on 9 Nov 2017
エクセルからデータを読み込み、図①に重ねてプロットしたいです。 エクセルデータ、図①、図①のプログラムは以下の通りです。 以下プログラムは、前半で観測ファイルを読み込み、後半で観測データの距離分解能を15mから150mに変換し、プロットしています。
どのようなプログラムを追加すればよいでしょうか。 よろしくお願い致します。
図①のプログラム
%ファイル読み込み
DebugFiles = 'C:\Users\MATLAB\160826\*1682621.00*';
D = dir(DebugFiles);
Z=0;
% ファイルオープン
fid=fopen(D.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);
R=150;
s=1.4*10^(-25)-9.5*10^(-27);
%距離分解能 15m→150mに変換
m=1;
for j=height1:10:dataheader_parsed(4)-9
A=0;
B=0;
for k=j:j+9
A =+ data{2}(k,1);
B =+ data{4}(k,1);
end
On1(m,1) = A;
Off1(m,1)= B;
if m >= 2
On2(m-1,1)=A;
Off2(m-1,1)=B;
end
m=m+1;
end
n= 1./(2.*s.*R).*((On1.*Off2)./(On2.*Off1));
figure;
plot(n, 1:numel(n))
ylim([10 30])   %10=0m,11=150m,,,,,,,30=3000mであるため表示変更
xlabel('水蒸気濃度')
ylabel('高さ[km]')
エクセルデータ
図①

Accepted Answer

jiro
jiro on 9 Nov 2017
既にグラフが存在するとして、こんな感じでしょうか。
ex_data = xlsread('file.xls'); % エクセルから数値データをインポート
hold on % 現在のグラフに追加
plot(ex_data(:,2),ex_data(:,1)) % 2列目に対して1列目をプロット
hold off
  1 Comment
nknknknk
nknknknk on 9 Nov 2017
ありがとうございます。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!