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;
似乎有几十种不同的方法可以在 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;