「X,Y,Z,成分」​の4列のテキストデー​タからパネルダイヤグ​ラムを作成したい

7 vues (au cours des 30 derniers jours)
Kenjiro Hiratsuka
Kenjiro Hiratsuka le 26 Fév 2024
Modifié(e) : Atsushi Ueno le 27 Fév 2024
「X,Y,Z,成分」の4列のテキストデータから、添付画像のようなパネルダイヤグラムを作成したいです。
値の取得は下記コードを作成したのですが、パネルダイヤグラムを表示するための手法は何が最適でしょうか?
% データフォルダの選択ダイアログを表示し、ファイルのパスを取得
[filename, folder] = uigetfile('*.txt', 'データファイルを選択してください');
% ユーザーがキャンセルボタンを押した場合の処理
if isequal(filename, 0) || isequal(folder, 0)
disp('ファイルが選択されませんでした。処理を中止します。');
return;
end
% ファイルのフルパスを構築
fullpath = fullfile(folder, filename);
% データの読み込み
data = dlmread(fullpath);
% XYZ座標と成分の列を取得
X = data(:, 1);
Y = data(:, 2);
Z = data(:, 3);
Component = data(:, 4);

Réponses (1)

Atsushi Ueno
Atsushi Ueno le 26 Fév 2024
Modifié(e) : Atsushi Ueno le 27 Fév 2024
slice 関数を使った上記サンプル事例を色々弄りました。だいぶ近づいたかな🤔
(追記:X/Y平面に分けて slice 関数を書いてましたが、一度に描ける事が判り修正しました)
[x,y,z,v] = flow; % サンプルデータ(flow)
hxy = slice(x,y,z,v,[2,5,8],[-1.5,1.5],[]);
[hxy.FaceColor] = deal('interp'); % メッシュ内を補完して滑らかに
[hxy.EdgeColor] = deal('none'); % メッシュ状の目盛線を消す
alpha(hxy,.8) % 透明度の設定
set(gca,'Color','k'); % 座標軸の背景を黒に
set(gcf,'color','k'); % figureの背景を黒に
daspect([1,1,1]) % アスペクト比を1:1にする
axis tight % 座標軸の端までプロットされる様にする
view(-45,60) % カメラ角度
camzoom(1.4) % カメラズーム
lightangle(45,45) % 照明角度
colormap(jet) % カラーマップ設定
clim([-6,1]) % カラーマップ適用範囲設定
  2 commentaires
Atsushi Ueno
Atsushi Ueno le 26 Fév 2024
「X,Y,Z,成分」4列のデー​タを「ボリュームデータ=X,Y,Z,V全て同サイズの3次元行列」にする必要があります。理路整然と等間隔かつ昇順に並んだデータなら reshape 関数で加工する事ができますが、おそらくは測定データで、バラバラなXYZ座標と共に成分が測定されたものと思います。
その場合、上記リンク先のscatteredInterpolant関数で3次元散布データの内挿を行って「ボリュームデータ」を作成してから slice 関数に入力してください。
% XYZ座標と成分の列を取得
X = data(:, 1);
Y = data(:, 2);
Z = data(:, 3);
Component = data(:, 4);
dx = 0.01; dy = 0.01; dz = 0.01; % ボリュームデータの刻み幅 (要変更)
F = scatteredInterpolant(data,Component); % 3次元の散布データの内挿
[xq,yq,zq] = meshgrid(min(X):dx:max(X), min(Y):dy:max(Y), min(Z):dz:max(Z));
vq = F(xq,yq,zq); % クエリ位置 (xq,yq,zq) で内挿を評価
Kenjiro Hiratsuka
Kenjiro Hiratsuka le 27 Fév 2024
大変詳細な回答をありがとうございます。
scatteredInterpolant関数」による3次元散布データの内挿補間は初めて知りました。
書いていただいたコードをもとにいろいろ試してみます。

Connectez-vous pour commenter.

Catégories

En savoir plus sur ライティング、透明度、およびシェーディング dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!