MATLAB: For given Decimal number, calculate possible fractions

decimalfractionsMATLABnumbers

I am trying to convert a decimal number to possible fractions.
For example, if my decimal is 0.5, the possible fractions can be 1/2, 5/10, 200/400 etc.
I used the 'rat' command which will give me the least possible fraction i.e., 1/2
But is there a way where I can generate the possible fractions as above for a given range ? Any help will be highly appreciated

Best Answer

max_denom = 12345; %what is the largest denominator you permit?
[n, d] = rat(TheNumber);
iters = 1 : floor(max_denom/d);
frac_numerator = n .* iters;
frac_denoms = d .* iters;
There is a slight bit more of a challenge if the numerator or the denominator have to be "round" numbers, with the degree of challenge depending upon the rules of which "round" numbers are permitted.