How can I interpolate a vector into a shorter one?
5 views (last 30 days)
Show older comments
Here is my problem: I have two vectors which I wanna make them same in the length. So my approach was trying to interpolate the long one into the same size of the shorter one.
For example:
A = [1,2,3,4,5]
B = [1,3,5]
I would like to make A to [1.67, 3.33, 5]
Is there a way that MATLAB can help me to interpolate a vector into a shorter one? Or there are other approaches for my problem?
Thanks,
8 Comments
sixwwwwww
on 16 Oct 2013
You can do it using some kind of manipulation. For example you can say that
A = [1.5 3.5 5]
using the logic that new A vector has value which are averaged over two values in old A vector as you can see until you can't make more averaging when it comes to non-even element. You should try to think about such manipulation
Answers (1)
sixwwwwww
on 16 Oct 2013
In case that you want to make longer vector shorter you can use some manipulation(For example I call it forward manipulation). Following is a manipulation example
A = [1.5 3.5 5];
count = 1;
for i = 1:length(A)
if i ~= length(A)
A_new(count) = A(i) * 2 - 2 * i;
A_new(count + 1) = A(i) * 2 - A_new(count);
count = count + 2;
else
A_new(count) = A(i);
end
end
And vice versa if you want to make a longer vector shorter you can do some manipulation.(For example I call it backward manipulation). Following is a manipulation example
A = 1:5;
count = 1;
for i = 1:2:length(A)
if i ~= length(A)
A_new(count) = (A(i) + A(i + 1)) / 2;
count = count + 1;
else
A_new(count) = A(i);
end
end
I hope it helps. Good luck!
0 Comments
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!