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?

 Réponse acceptée

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 commentaires

li
li le 5 Juin 2025
Thanks.Due to the lower memory, the data inputted must smaller than 16bits,so doubled the data can't solve the probelm.
Sam Chak
Sam Chak le 5 Juin 2025
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.
li
li le 5 Juin 2025
Great! I had tried your method,it works.
Matt J
Matt J le 5 Juin 2025
@li If so, please Accept-click the answer.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Interpolation dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by