Interpolation in mat-lab

5 views (last 30 days)
Maayan
Maayan on 10 Sep 2013
Hi, I have a vector with different values. Some of the values are zeros and sometimes they even come one after another. I need to plot this vector against another vector with the same size but i can't have zeros in it. What is the best way i can do some kind of interpolation to my vector and how do i do it? Thanks
  1 Comment
Azzi Abdelmalek
Azzi Abdelmalek on 10 Sep 2013
Give a short sample of your data, and explain what is the problem

Sign in to comment.

Accepted Answer

Simon
Simon on 10 Sep 2013
Hi!
What kind of interpolation do you need? Try "interp1"!
  2 Comments
Maayan
Maayan on 10 Sep 2013
I don't even have any idea what kind of interpolations are. My vector has intensities values of an image and eventually i will need to plot it against the time that the video lasts. I have some zeros there because in the video there are some blank frames and i don't want the plot to address them. What kind of interpolation do you think will be best here? I will also appreciate if you can explain me how to use the "interp1", i read about it but didn't understand it good enough to implement it. I'm very new with the program. thanks
Simon
Simon on 10 Sep 2013
Hi!
You have the time stamps of your frames, these are the "xi". Your "x" values are the time stamps where the frames are not blank. The "Y" are the non-zero values of your vector.
% vector of frames
vec = [1 5 6 3 0 4 0 5 7 0 3];
% set vector of time staps, fill in your values
xi = [1 2 3 4 5 6 7 8 9 10 11];
% get non-blank frames, fill in your vector values
nonblankframe = find(vec > 0);
% vector to interpolate
Y = vec(nonblankframe);
% time stamps of non blank frames
x = timestamps(nonblankframe);
% interpolate
yi = interp1(x,Y,xi);

Sign in to comment.

More Answers (0)

Categories

Find more on Interpolating Gridded Data 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!