MATLAB: Storing floating point values in an array

float

I want to do a calculation which gives answer in float. then i want to store that answer in an array. when i tried to do so, the array is converting that float value to nearby integer. can anybody tell me how to get out of it.

Best Answer

If you declare a variable and insert values later, the type of the variable is not changed:
a = zeros(10, 1, 'uint8');
a(1) = pi;
class(a) % >> UINT8 !
disp(a)
% >> 3
Therefore the variable must be either defined explicitely using the wanted class:
a = zeros(10, 1, 'double');
% or simply: a = zeros(10, 1);
Or let Matlab choose the type automatically by omitting the explicite pre-allocation:
a(10) = theFunction();
Now you can start with the last element for an implicite pre-allocation.