33 views (last 30 days)

Hi

I have two datasets with different dimensions. Needs to be matched somehow and one dimension needs to be interpolated to fit the dimension of the second data set

My first dataset is X,Y (2D) and my second dataset is only Y (1D). I need to somehow combine those two datasets. Like trying to plug in the Y axis data from the second dataset to the first set which is 2D. So, the X axis from the first set will be interpolated to match the data of the new Y axis data (second set). Am I clear?

the cyclist
on 30 Oct 2019

% Data from your file that has both x and y

x1 = [2 3 5];

y1 = [1 2 3];

% Data from your file that has only y

y2 = [1.5 2.5];

% Interpolate the set of x data in based on the above.

x2 = interp1(y1,x1,y2)

If you look at that documentation page, note that the use of "x" and "y" variables are swapped compared to what is written here, because the normal convention is that y is dependent on x, but that is not what you have described in your question.

If this doesn't do what you want, or if it is unclear, then I suggest you actually load your data from Excel into MATLAB, save to a *.mat file, and upload those data here.

the cyclist
on 1 Nov 2019

% Data from your file that has both force and y

force1 = [2 3 5];

y1 = [1 2 3];

% Data from your file that has only y

y2 = [1.5 2.5];

% Interpolate the set of force data in based on the above.

force2 = interp1(y1,force1,y2)

Same as I posted above, but I've just changed variable names since you are interpolating force from y.

MOHD UWAIS
on 21 Jul 2020

if x1 = [-3 -2 -1 0 1 2 3 4];

y1 = [9 4 1 0 1 4 9 16];

y2 = [8];

how we can calculate "x2 = interp1(y1,x1,y2)".

i.e. here we will get two values of x1 correspond to single value of y2. pls explain to it.

thanks

the cyclist
on 21 Jul 2020

You should really open a new question, rather than burying this as a comment on an 8-month-old question.

But, since I happened to see it ...

You'll need to separate your problem into two different "branches" of y, because the sample points must be unique. So, you'll need to do one interpolation with, for example, the values of y>=0, and another with y<0.

MOHD UWAIS
on 26 Jul 2020

Thanks for your response.

Actually my problem is to find the fwhm(s) of large number of curve like following. So i require the interpolation values of x corresponding to average y values to write the code (because x values do not lie exactly y data points in average of y) . There are exist two values of x correspondinfg to single average value of y in a one curve (therfore sample point is not unique).

i looking forwrd.

Thank YOU.

Image Analyst
on 26 Jul 2020

It seems like you saw the Cyclist's response above https://www.mathworks.com/matlabcentral/answers/488134-interpolate-among-datasets-so-one-set-matches-the-other#comment_945078

but you still posted your question here, as an answer to Stelios's question. Why?

We look forward to answering your question when you post it as your own question, not here in Stelios's thread. In the meantime, check out the find() function, like index=find(signal < threshold).

Opportunities for recent engineering grads.

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

Start Hunting!
## 2 Comments

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/488134-interpolate-among-datasets-so-one-set-matches-the-other#comment_761375

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/488134-interpolate-among-datasets-so-one-set-matches-the-other#comment_761375

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/488134-interpolate-among-datasets-so-one-set-matches-the-other#comment_761654

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/488134-interpolate-among-datasets-so-one-set-matches-the-other#comment_761654

Sign in to comment.