How to replace numbers in one vector according to two 'translation vectors'

5 次查看(过去 30 天)
Hi,
I probably just googled for the wrong terms as this seems to be a very common problem.
I have a vector A that needs to be translated into the vector D according to the rules set in vectors B and C.
A = [3; 5; 8];
B = [3; 4; 5; 7; 8];
C = [1; 2; 3; 4; 5];
D = ?
B and C say, how the translation works. Example 1: a 3 in A must become a 1 in D. Example 2: a 7 in A (although there isn't any, but if there were) must become a 4 in D.
So the solution for D must be [1; 3; 5]. How can I get there?

采纳的回答

jonas
jonas 2020-9-16
编辑:jonas 2020-9-16
D = interp1(B,C,A)
  2 个评论
Clemens Gersch
Clemens Gersch 2020-9-16
编辑:Clemens Gersch 2020-9-16
Quite a "think outside of the box" idea. I know interp1, but would have never got to the point of using it in this constellation.
Works fine, thanks.
jonas
jonas 2020-9-16
My pleasure!
It makes sense if you think of your translation vectors as a function.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by