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

33 Ansichten (letzte 30 Tage)
nknknknk
nknknknk am 9 Nov. 2017
Kommentiert: nknknknk am 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]')
エクセルデータ
図①

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

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!