use*_*272 1 arrays matlab linear-interpolation
我正在尝试插入向量的值,但我似乎无法理解如何正确使用interp1.m.
这就是我所期待的:
a=[1 0 2 0 3 0 4];
//Use of interp1.m
Output=[1 1.5 2 2.5 3 3.5 4];
a=[1 0 0 2 0 0 3 0 0 4];
//Use of interp1.m
Output=[1 1.32 1.65 2 2.31 2.64 3 3.3 3.63 4];
Run Code Online (Sandbox Code Playgroud)
假设您总是希望填充向量的零值:
a = [3 0 6 0 5 0 4]
mask = logical(a);
nvec = 1:numel(a);
a(~mask) = interp1(nvec(mask),a(mask),nvec(~mask))
Run Code Online (Sandbox Code Playgroud)
a =
3.0000 4.5000 6.0000 5.5000 5.0000 4.5000 4.0000
Run Code Online (Sandbox Code Playgroud)
假设您想要按某个因素拉伸矢量:
a = [3 6 5 4]
stretchfactor = 2;
a = interp1((1:numel(a))*stretchfactor - 1, a, 1:numel(a)*stretchfactor - 1)
Run Code Online (Sandbox Code Playgroud)
a =
3.0000 4.5000 6.0000 5.5000 5.0000 4.5000 4.0000
Run Code Online (Sandbox Code Playgroud)