MATLAB:插值向量

MATLAB:插值向量,matlab,Matlab,如何在MATLAB中插值向量 例如,我有以下矩阵: M= 1 10 2 20 3 30 4 40 M的第一列表示x坐标的独立参数,M的第二列表示输出或y坐标 我还有以下输入向量: a = 2.3 2.1 3.5 对于a的每个值,我希望确定输出插值结果是什么。在这种情况下,给定a,我希望返回 23 21 35 以下是编辑后问题的答案,即“如何插值” 你想用 以下是“查找向量中最近的两个条目”问题的答案,即编辑前的原始问题 x=[

如何在MATLAB中插值向量

例如,我有以下矩阵:

M=    
 1 10  
 2 20  
 3 30  
 4 40  
M
的第一列表示
x
坐标的独立参数,
M
的第二列表示输出或
y
坐标

我还有以下输入向量:

a =
 2.3  
 2.1  
 3.5  
对于
a
的每个值,我希望确定输出插值结果是什么。在这种情况下,给定
a
,我希望返回

23   
21   
35

以下是编辑后问题的答案,即“如何插值”

你想用



以下是“查找向量中最近的两个条目”问题的答案,即编辑前的原始问题

x=[1,2,3,4,5]'; %'#
a =3.3;

%# sort the absolute difference
[~,idx] = sort(abs(x-a));

%# find the two closest entries
twoClosestIdx = idx(1:2);

%# turn it into a logical array
%#   if linear indices aren't good enough
twoClosestIdxLogical = false(size(x));
twoClosestIdxLogical(twoClosestIdx) = true;
twoClosestIdxLogical =
     0
     0
     1
     1
     0

谢谢兄弟,很抱歉这样编辑你的问题。为了解决第二个问题,我试着解决第一个问题,但是我没有matlab的内置函数来解决这个问题。matlab的内置函数几乎可以做任何事情。在重新发明车轮之前,请务必查看文档。Matlab文档是我见过的最好的文档之一。Mathworks应该赞助它,因为现在你可以发现你需要的内置函数了。@EvgeniSergeev-这很有趣。几乎所有的函数,我学会了如何在MATLAB中使用,我通过这样学习。
x=[1,2,3,4,5]'; %'#
a =3.3;

%# sort the absolute difference
[~,idx] = sort(abs(x-a));

%# find the two closest entries
twoClosestIdx = idx(1:2);

%# turn it into a logical array
%#   if linear indices aren't good enough
twoClosestIdxLogical = false(size(x));
twoClosestIdxLogical(twoClosestIdx) = true;
twoClosestIdxLogical =
     0
     0
     1
     1
     0