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

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);
I've already tried this link's answer, but couldn't figure out the solution.
Thanks in advance for any help.

2 Comments

Why not follow the steps you did with F to get Z as F(X, Y)?
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.

Sign in to comment.

 Accepted Answer

Why not just,
F=scatteredInterpolant(Y(:),Z(:),X(:));

1 Comment

OMG.. It works well.
I didn't know it would be solved so easily... Thanks for your help :)

Sign in to comment.

More Answers (0)

Categories

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

Products

Release

R2023a

Asked:

on 30 Nov 2023

Commented:

on 1 Dec 2023

Community Treasure Hunt

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

Start Hunting!