how to use interp1() function with half data

x=half(0:5);
y=x.^2;
interp1(x,y,5)
Error using matlab.internal.math.interp1
Sample values must be of type double or single.
Error in interp1 (line 188)
VqLite = matlab.internal.math.interp1(X,V,method,method,Xqcol);
How to use interpolation with half or even shorter types?

 Accepted Answer

Hi @li, If you double the data, it works.
x=half(0:5)
x = 1×6 half row vector 0 1 2 3 4 5
y=x.^2
y = 1×6 half row vector 0 1 4 9 16 25
interp1(double(x), double(y), 5)
ans = 25

4 Comments

Thanks.Due to the lower memory, the data inputted must smaller than 16bits,so doubled the data can't solve the probelm.
Hi @li
I see. Could you possibly perform the interpolation in another system and then transmit the interpolated data back in 16-bit format? I am merely exploring the possibilities.
If all else fails, you may need to perform the interpolation using basic arithmetic operators. I have verified that the plus, minus, times, and rdivide functions can handle int16 data.
Great! I had tried your method,it works.
@li If so, please Accept-click the answer.

Sign in to comment.

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Asked:

li
on 5 Jun 2025

Commented:

on 5 Jun 2025

Community Treasure Hunt

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

Start Hunting!