How to convert y data for equal intervals of x, z to z data for equal intervals of x, y

4 ビュー (過去 30 日間)
x and z are tables of size 100x100 using meshgrid.
Values ​​outside the required range of z are treated as NaN.
The y value is the result of the calculation using x and z.
If the result of the calculation for z is a complex number, NaN is processed.
What code should I use to find z for equally spaced x, y?
An error occurs when trying to do 3D interpolation.
I attached the variable as an attachment.
I would greatly appreciate your help.
  1 件のコメント
Madheswaran
Madheswaran 2024 年 11 月 12 日
@Yunjai Could you also post the minimal version of code you were trying to run and the error you were facing?

サインインしてコメントする。

採用された回答

Bruno Luong
Bruno Luong 2024 年 11 月 12 日
移動済み: Bruno Luong 2024 年 11 月 12 日
Rescaling is important when doing scatering interpolation. Avoid unstable extrapolation
load example.mat
XYZ = [X(:), Y(:), Z(:)];
XYZ = rmmissing(XYZ,1);
[minx, maxx] = bounds(X, "all");
[miny, maxy] = bounds(Y, "all");
XN = (XYZ(:,1)-minx)/(maxx-minx);
YN = (XYZ(:,2)-miny)/(maxy-miny);
F = scatteredInterpolant(YN, XN, XYZ(:,3) , 'linear', 'none');
[XNG, YNG] = deal(linspace(0, 1));
ZG = F({YNG, XNG});
XG = minx + XNG*(maxx-minx);
YG = miny + YNG*(maxy-miny);
figure
surf(XG, YG, ZG);
shading interp
hold on
contourf(XG, YG, ZG, 'Zlocation',-1.3)
colorbar
plot3(X(:),Y(:),Z(:),'.b')
view(15,50)
  1 件のコメント
Bruno Luong
Bruno Luong 2024 年 11 月 12 日
移動済み: Bruno Luong 2024 年 11 月 12 日
If you want exptrapolation I recommend using either the legacy griddata 'v4' or John d'Erric Inpaint_NaNs

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2024 年 11 月 12 日
移動済み: Walter Roberson 2024 年 11 月 12 日
load example.mat
XYZ = [X(:), Y(:), Z(:)];
XYZ = rmmissing(XYZ,1);
F = scatteredInterpolant(XYZ(:,1), XYZ(:,2), XYZ(:,3));
[minx, maxx] = bounds(X, "all");
[miny, maxy] = bounds(Y, "all");
[XG, YG] = ndgrid(linspace(minx, maxx), linspace(miny, maxy));
ZG = F(XG, YG);
surf(XG, YG, ZG);
shading interp

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by