2015-01-06 11 views
1

有看似简单抗锯齿是在几十几十种不同的方式在Matlab中做到这一点,但我需要一个简单的一个是快速,高性能,并不能真正找到一个(有插值许多条目,但没有我可以找到的抗锯齿)。在Matlab

鉴于一些用0填充的一维阵列,诸如

[0 0 0 0 0] 

我需要能够在某些非整数指数i添加一个单个值v。例如,如果v分别为10和i是2.75,我们会得到一些接近

[0 2.5 7.5 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;