MATLAB: How do you change bases without dec2base, etc.

base change

I have to write a function that changes any positive real number in base 10 to any base from 2 to 9. The main part that I am struggling with is putting the inputed value into an array so you can manipulate each element. So for example, if I'm converting 23 in base 10 to base 2, how would I put the 23 into an array so that I could go about converting it? Any help would be greatly appreciated.

Best Answer

Method one: num2str (does not work with decimal digits):
>> N = 23;
>> vec = num2str(N)-'0'
vec =
2 3
Method two: from powers of ten:
>> pwr = floor(log10(N));
>> vec = mod(floor(N ./ 10.^(pwr:-1:0)), 10)
vec =
2 3
Related Question