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

조회 수: 44 (최근 30일)
nknknknk
nknknknk 2017년 11월 9일
댓글: nknknknk 2017년 11월 9일
エクセルからデータを読み込み、図①に重ねてプロットしたいです。 エクセルデータ、図①、図①のプログラムは以下の通りです。 以下プログラムは、前半で観測ファイルを読み込み、後半で観測データの距離分解能を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]')
エクセルデータ
図①

채택된 답변

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

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 座標軸の外観에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!