2015-01-06 4 views
1

Matlab에서이 작업을 수행하는 데 수십 가지의 다른 방법이있는 것처럼 보입니다. 그러나 빠르고 성능이 뛰어나고 실제로 하나를 찾을 수없는 간단한 것이 필요합니다 (보간을위한 많은 항목이 있지만 내가 안티 앨리어싱으로 찾을 수있는 것은 없습니다). Matlab의 간단한 앤티 앨리어싱

I는 일부 비 - 정수 인덱스 i에서 하나 개의 값 v를 추가 할 수 있어야

[0 0 0 0 0] 

같은 0 가득 어떤 1 차원 배열을 감안. 예를 들어, 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;