How can I interpolate a vector into a shorter one?
Afficher commentaires plus anciens
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 commentaires
Azzi Abdelmalek
le 16 Oct 2013
Modifié(e) : Azzi Abdelmalek
le 16 Oct 2013
What is the relation between your vectors? What are your criterion?
zheng
le 16 Oct 2013
Azzi Abdelmalek
le 16 Oct 2013
Ok, but how did you get [ 1.67, 3.33, 5] ?
zheng
le 16 Oct 2013
zheng
le 16 Oct 2013
sixwwwwww
le 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
zheng
le 16 Oct 2013
Réponses (1)
sixwwwwww
le 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!
Catégories
En savoir plus sur Interpolation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!