Interpolating matrices of different sizes to the same size

Hello,
i have two signals and i want to equalize sizes of my signals because i try to find the time lag in between. Size of first signal is [4001 1], second is [1 180]. But i don't want to just remove some elements from first signal. It should be have almost same curve like in this photo. I think that i need something about interpolation and i tried this code but it show me just same value always, not like interpolation.
targetSize = [1 180];
signal_new = imresize(signal, targetSize);
Any idea? I am very appreciated for your answers, thank you!

3 Comments

It's not completely clear to me what you mean, but I'm fairly sure imresize is not the way to go (as imresize is for images, not matrices).
I'm guessing both signals are tracking something over time, but one generating more data points per minute than the other? If so, make them into a timetable. MATLAB has great support for time related matrices.
Does this help?
thank you Pieter. But i don't get it actually. My time is not like this "18-Dec-2015 08:03:05". They are just numbers. It is Timetable?
Others have given alternatives such as interp1, but if you want to use timetable, can you give me an example of your data?

Sign in to comment.

 Accepted Answer

More Answers (1)

interp1 will do what you want. I find that using it with the 'pchip' flag is particularly useful.

Asked:

on 15 Aug 2018

Commented:

on 15 Aug 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!