MATLAB Answers

# Generating a function using an array

1 view (last 30 days)
Brian Kettering on 26 Aug 2020
Edited: esat gulhan on 26 Aug 2020
If I have an array of data. Is there a way to generate a function from the data contained in the array? That if I evaluated the function, it would generate the data equivelent to the array. The generated function will be used to find the local min and max (critical points) of the function.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Answers (2)

esat gulhan on 26 Aug 2020
maybe like this. if you send data it can be easier to choose the way of function. I used sin data and choose pchip.
x=[ 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 3.4558 3.7699 4.0841]
y=[ 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000 -0.3090 -0.5878 -0.8090]
t=pchip(x,y) %Piecewise Cubic Hermite Interpolating Polynomial function of x y
ppval(t,2) %the value of function at 2
ppval(t,0) %the value of function at 0
plot(x,ppval(t,x))
findpeaks(ppval(t,x)) %local maksimum points
##### 2 CommentsShowHide 1 older comment
Brian Kettering on 26 Aug 2020
Thanks for helping, but I keep getting the following error
Error using chckxy (line 30)
The X vector should have real elements.
Error in pchip (line 58)
[x,y,sizey] = chckxy(x,y);
Error in Untitled2 (line 11)
t=pchip(x,y) %Piecewise Cubic Hermite Interpolating Polynomial function of x y

Sign in to comment.

esat gulhan on 26 Aug 2020
Edited: esat gulhan on 26 Aug 2020
Hi
can you try this
clear all;clc;
x=[ 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.141 3.4558 3.76 4.08]
y=[ 0 0.3090 0.5878 0.8090 0.9511 1 0.9511 0.809 0.5878 0.3090 0.0 -0.309 -0.58 -0.8]
t=pchip(x,y) %Piecewise Cubic Hermite Interpolating Polynomial function of x y
ppval(t,2) %the value of function at 2
ppval(t,0) %the value of function at 0
plot(x,ppval(t,x))
findpeaks(ppval(t,x)) %local maksimum points
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!