在Matlab中似乎有几十种不同的方法可以做到这一点,但我需要一个快速且高性能的简单方法,并且不能真正找到一个(插值有很多条目,但我没有寻找抗锯齿)。
给定一些填充0的一维数组,例如
[0 0 0 0 0]
我需要能够在某个非整数索引v
上添加一个值i
。例如,如果v
为10且i
为2.75,我们会接近
[0 2.5 7.5 0 0]
我可以手动完成,但我确信已经内置了一些东西。
答案 0 :(得分:2)
手动可能是最快的:
x = [0 0 0 0 0]; %// original data
ind = 2.75; %// index of new value
val = 10; %// new value
ind_int = floor(ind); %// integer part of index
ind_fr = ind - ind_int; %// fractional part of index
x(ind_int) = x(ind_int) + (1-ind_fr)*val; %// or maybe x(ind_int) = (1-ind_fr)*val;
x(ind_int+1) = x(ind_int+1) + ind_fr*val; %// maybe x(ind_int+1) = ind_fr*val;