Effacer les filtres
Effacer les filtres

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

82 vues (au cours des 30 derniers jours)
nknknknk
nknknknk le 9 Nov 2017
Commenté : nknknknk le 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]')
エクセルデータ
図①

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 座標軸の外観 dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!