2D Interpolation with different sized matrices

x = [1 2 3 4 5];
y = [1 2 3 4 5];
z = [1 2 1 2 3; 3 4 3 4 5; 5 6 5 6 7; 3 4 3 4 5; 1 2 1 2 3];
]
Hello,
Is there a method to obtain the corresponding x value when the y and z values are provided? I tried interp2 which gives the value of z when x and y are given. The command does not offer me the expected option. Can somebody guide me to solve my problem?
Thanks in advance.

1 Comment

Please provide an example of the inputs and the wanted output.

Sign in to comment.

Answers (1)

A bold guess of what "corresponding x value when the y and z values are provided" means:
x = [1 2 3 4 5];
y = [1 2 3 4 5];
z = [1 2 1 2 3; 3 4 3 4 5; 5 6 5 6 7; 3 4 3 4 5; 1 2 1 2 3];
yWant = 2;
zWant = 3;
match = (y == yWant) & (z == zWant); % Auto-expand, Matlab >= R2016b
xResult = x(any(match, 1));

3 Comments

Awesome Jan. You guessed it right. But for some inputs, it does not provide an output. For example, when y = 2.5 and z = 4.5. Thank you so much for following up. According to your view, what might be the issue?
My code does only find exact matchs, so it is not an interpolation. Therefore I asked for examples of inputs and the wanted outputs. Please answer this question for clarification, because it is required to understand, what you want to get. I cannot guess, what you want as output for the inputs y=2.5 and z=4.5 .
sorry for the inconvenience. I need to get the value of x as the output. The two inputs will be y=2.5 and z=4.5

Sign in to comment.

Categories

Find more on Interpolation in Help Center and File Exchange

Asked:

on 18 Jan 2021

Commented:

on 20 Jan 2021

Community Treasure Hunt

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

Start Hunting!