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 Commenti

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?
Ase U
Ase U il 15 Ago 2018
Modificato: Ase U il 15 Ago 2018
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?

Accedi per commentare.

Più risposte (1)

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

Richiesto:

il 15 Ago 2018

Commentato:

il 15 Ago 2018

Community Treasure Hunt

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

Start Hunting!

Translated by