MATLAB:插入向量

时间:2011-02-13 21:52:38

标签: 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

1 个答案:

答案 0 :(得分:8)

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

您想使用interp1

M = [1 10;2 20;3 30;4 40];
a = [2.3;2.1;3.5;1.2];

interpolatedVector = interp1(M(:,1),M(:,2),a)
interpolatedVector =
    23
    21
    35
    12

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

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