# How can I get X value by transforming the griddedInterpolant function?

1 view (last 30 days)
형준 김 on 30 Nov 2023
Commented: 형준 김 on 1 Dec 2023
Hi.
I have 2D data (60*60) of X, Y, Z, and I've made 'griddedInterpolant' function with these data.
Here is my sample code:
[Xq, Yq] = meshgrid(min(X):(max(X) - min(X))/999:max(X), min(Y):(max(Y) - min(Y))/999:max(Y));
Vq = griddata(X, Y, Z, Xq, Yq, 'linear');
F = griddedInterpolant(Xq', Yq', Vq');
With this F function, I can get Z value of X, Y values.
Z_value = F(X_value, Y_value);
But the thing that I want is X value of Y, Z values with G.
X_value = G(Y_value, Z_value);
Thanks in advance for any help.
Dyuman Joshi on 30 Nov 2023
Why not follow the steps you did with F to get Z as F(X, Y)?
형준 김 on 1 Dec 2023
Sorry for late comment.
Actually, I've tried it. The data shape is as follows:
The code example that I've tried is:
[Yq, Zq] = meshgrid(min(Y):(max(Y) - min(Y))/999:max(Y), min(Z):(max(Z) - min(Z))/999:max(Z));
Xq = griddata(Y, Z, X, Yq, Zq, 'linear');
F = griddedInterpolant(Yq', Zq', Xq');
However, Yq and Zq were empty because of Z.
I didn't write it in the question, X and Y data are gridded data, generated horizontally/vertically. And Z was generated diagonally. So an error occurs in the process of generating Yq and Zq using Z.
That's why I want to transform the function. Sorry for the confusion.

Matt J on 1 Dec 2023
Edited: Matt J on 1 Dec 2023
Why not just,
F=scatteredInterpolant(Y(:),Z(:),X(:));
형준 김 on 1 Dec 2023
OMG.. It works well.
I didn't know it would be solved so easily... Thanks for your help :)

### Categories

Find more on Graphics Object Programming in Help Center and File Exchange

R2023a

### Community Treasure Hunt

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

Start Hunting!