MATLAB Answers

2D Interpolation with different sized matrices

41 views (last 30 days)
Senal Perera
Senal Perera on 18 Jan 2021
Commented: Senal Perera on 20 Jan 2021
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

Jan
Jan on 18 Jan 2021
Please provide an example of the inputs and the wanted output.

Sign in to comment.

Answers (1)

Jan
Jan on 18 Jan 2021
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

Senal Perera
Senal Perera on 19 Jan 2021
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?
Jan
Jan on 19 Jan 2021
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 .
Senal Perera
Senal Perera on 20 Jan 2021
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.

Community Treasure Hunt

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

Start Hunting!

Translated by