Search code examples
matlabfloating-pointieee-754

is float16 supported in matlab?


Does MATLAB support float16 operations? If so, how to convert a double matrix to float16? I am doing an arithmetic operation on a large matrix where 16-bit floating representation is sufficient for my representation. Representing by a double datatype takes 4 times more memory.


Solution

  • Is your matrix full? Otherwise, try sparse -- saves a lot of memory if there's lots of zero-valued elements.

    AFAIK, float16 is not supported. Lowest you can go in float-datatype is with single, which is a 32-bit datatype:

    A = single( rand(50) );
    

    You could multiply by a constant and cast to int16, but you'd lose precision.