# How to generate a function from x-y vectors?

186 views (last 30 days)
Ajay Goyal on 6 Feb 2017
Commented: Ghenam Dahmane on 4 Mar 2022
Hello MATLAB users. I got two vectors (say x and y). Is there any way to create a function i.e. y=f(x). I do not want the expression. I just want to create the function in matlab for further calculations. For ease: x=[1 5 0 32 8]; y=[10 1 654 32 100];
##### 2 CommentsShowHide 1 older comment
Ajay Goyal on 6 Feb 2017
Edited: Ajay Goyal on 6 Feb 2017
If I do not get expression; its ok. I just want to create a funtion from these vectors so that further calculations like Fourier series etc can be done

Nicolas Schmit on 4 Sep 2017
You question is not very clear, so I will try to guess what you are trying to do.
If you want to define a purely symbolic function f(x), use the following syntax.
syms f(x)
If you want to create a function from data points x and y, use the griddedInterpolant function to create a interpolation of x and y.
x=[1 5 0 32 8];
y=[10 1 654 32 100];
[~, index] = sort(x);
F = griddedInterpolant(x(index), y(index));
##### 2 CommentsShowHide 1 older comment
Ghenam Dahmane on 4 Mar 2022
Thank you for your help Nicolas Schmit

Yifan Ma on 6 Feb 2018
What you are looking for is map container. https://de.mathworks.com/help/matlab/ref/containers.map-class.html

Luca on 31 Mar 2020
Edited: Luca on 31 Mar 2020
Hi,
I have 2 vector (x, y) and I desire math expression y=f(x)
x must be syms. How to?
tnks
##### 2 CommentsShowHide 1 older comment
Ajay Goyal on 31 Mar 2020
both files has to be in the working folder

Luca on 31 Mar 2020
Edited: Luca on 31 Mar 2020
For you.