Excelやテキストファイルに記載された xyz座標のベクトル​データ(散布データ)​から3次元メッシュプ​ロットやコンター図を​描くことはできますか​?

251 views (last 30 days)
data = dlmread('外部テキストデータファイル名',' ');
Excelやテキストファイルにx, y,z のデータがそれぞれベクトルデータ(散布データ)として定義されています。このデータを使用してコンター図を描く方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 4 Mar 2022
Edited: MathWorks Support Team on 4 Mar 2022
コンター図を描くには、CONTOUR 関数を使用します。CONTOUR 関数では、下図のように格子状の2次元配列のデータを使用します。
質問のようにそれぞれ1次元のxyzデータからコンター図を描くためには、MESHGRID 関数と GRIDDATA 関数を使用して格子状の2次元配列を作成します。
以下のサンプル用の Excel ファイルからデータをインポートしてコンター図を描く例を以下に記載します。
サンプル Excel データファイル data_sample.xls は、関連ドキュメントよりダウンロード可能です。
※ 上記ファイルはZIP形式で圧縮しています。解凍してご利用ください。
% データのインポート
data = xlsread('data_sample.xls'); % ---※(1)
x=data(:,1);
y=data(:,2);
z=data(:,3);
% 等間隔の2次元XYデータを作成
xlin = linspace(min(x),max(x),7);
ylin = linspace(min(y),max(y),7);
[X,Y]=meshgrid(xlin,ylin);
% 2次元XYデータに対するZデータ作成(グリッド化と補間)
Z=griddata(x,y,z,X,Y);
% コンター図の描画
contour(X,Y,Z); % ---※(2)
 
※(1) このコマンドは外部データがExcelファイルの場合です。スペース区切りのテキストファイルの場合には、以下のように変更してください。その他のフォーマットにつきましては、参考URLの「サポートされている形式」を参照してください。
※(2) CONTOUR 関数の代わりに MESH関数、SURF関数を使用することで、3次元メッシュプロットやサーフェースプロットを描くことも可能です。
本件に関連するヘルプドキュメントが下記 URL よりご覧いただけます。
・MATALB ユーザーガイド:griddata と griddatan を使った散布データの内挿
・MATLAB ユーザーガイド:サポートされているファイル形式

More Answers (0)

Community Treasure Hunt

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

Start Hunting!