xyzφデータ入力のgradient演算

3 visualizaciones (últimos 30 días)
繁
el 19 de Feb. de 2023
Comentada: el 17 de Mzo. de 2023
x,y,z座標とその場所のスカラ値φで構成される4列複数行のテーブルデータがあります。このデータのgradient(勾配)を求める方法を教えてもらえますか?
gradient関数のドキュメントを確認すると、xyzの行列にしてあげれば演算可能なようですが、本データのxyzは等間隔でない位置関係にあります。
よろしくお願いします。

Respuesta aceptada

covao
covao el 13 de Mzo. de 2023
Movida: Atsushi Ueno el 15 de Mzo. de 2023
等間隔でないx,y,zデータは、scatteredInterpolant関数を用いて等間隔の点に補間し、gradient関数で勾配を算出することができます。
一様に分布していないデータの表面をプロットする例が、以下のドキュメントにあります。
x = rand(100,1)*16 - 8;
y = rand(100,1)*16 - 8;
r = sqrt(x.^2 + y.^2) + eps;
z = sin(r)./r;
xlin = linspace(min(x),max(x),33);
ylin = linspace(min(y),max(y),33);
[X,Y] = meshgrid(xlin,ylin);
f = scatteredInterpolant(x,y,z);
Z = f(X,Y);
z = sin(r)./r;
figure
mesh(X,Y,Z) %interpolated
axis tight; hold on
plot3(x,y,z,'.','MarkerSize',15) %nonuniform
figure
contour(X,Y,Z)
hold on
[fx,fy] = gradient(Z,0.1);
quiver(X,Y,fx,fy)
hold off
  1 comentario
繁
el 17 de Mzo. de 2023
ありがとうございます。こちらで問題解決できました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 2 次元および 3 次元プロット en Help Center y File Exchange.

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!