Matlab 中的简单抗锯齿

Simple antialiasing in Matlab

似乎有几十种不同的方法可以在 Matlab 中执行此操作,但我需要一种快速且高性能的简单方法,但找不到真正的方法(有很多用于插值的条目,但没有一个是我可以找到抗锯齿)。

给定一些用0填充的一维数组,比如

[0 0 0 0 0]

我需要能够在某个非整数索引 i 处添加一个值 v。例如,如果 v 是 10 而 i 是 2.75,我们会得到接近

的值
[0 2.5 7.5 0 0]

我可以手动执行此操作,但我确定已经内置了一些东西。

手动可能是最快的:

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;