xyzφデータ入力のgradient演算
3 views (last 30 days)
Show older comments
x,y,z座標とその場所のスカラ値φで構成される4列複数行のテーブルデータがあります。このデータのgradient(勾配)を求める方法を教えてもらえますか?
gradient関数のドキュメントを確認すると、xyzの行列にしてあげれば演算可能なようですが、本データのxyzは等間隔でない位置関係にあります。
よろしくお願いします。
0 Comments
Accepted Answer
covao
on 13 Mar 2023
Moved: Atsushi Ueno
on 15 Mar 2023
一様に分布していないデータの表面をプロットする例が、以下のドキュメントにあります。
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
More Answers (0)
See Also
Categories
Find more on 表面プロットとメッシュ プロット in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!